如果这已经是以前解决的问题,请重定向我!
在我的程序中,我有一个舞台,用户可以在其中查看内容列表,存储在由字符串组成的列表中。
goToView.setOnAction(event ->{
menuStage.close();
viewStage.show();
String horseNameList = "";
for(int i = 0; i < accountList.size(); i++){
if(accountList.get(i).userName.equals(uName)){
for(int j = 0; j < accountList.get(i).createdHorses.size(); j++){
horseNameList += accountList.get(i).createdHorses.get(j);
horseNameList += "\n" + "\n";
}
}
Text hNameListTXT = new Text(horseNameList);
hNameListTXT.setFont(Font.font("Tahoma", FontWeight.NORMAL, 12));
listVbox.getChildren().add(hNameListTXT);
}
createdHorses是一个字符串列表,listVbox就像你想象的那样打印一个字符串(转换为文本)的VBox。现在,当我使用以下EventHandler关闭舞台时,没有特别的事情发生:
backView.setOnAction(event -> {
viewStage.close();
menuStage.show();
});
但是当我再次打开舞台时(通过使用另一个类似于我用来关闭第一个舞台的EventHandler),我的List(或String)被加倍了。我该怎么做才能清除字符串(或可能是文本),使其不显示两次?
答案 0 :(得分:0)
我应该怎么做才能清除字符串(或可能是文本) 没有显示两次?
VBox的方法getChildren()会返回ObservableList。因此,您可以使用clear()删除所有孩子。