2015-05-24 3 views
0

Перенаправить меня, если это уже проблема, которая ранее была решена!Очистка строки/текста

В моей программе у меня есть этап, в котором пользователь может просматривать список содержимого, хранящийся в списке, состоящем из строк.

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, где распечатана String (которая преобразуется в текст). Теперь, когда я закрываю этап со следующей EventHandler, ничего особенного не происходит: backView.setOnAction(event -> { viewStage.close(); menuStage.show(); });

Но как я тогда открыть этап еще раз (с использованием другого EventHandler похож на тот, который я использую для закрытия первой стадии с) , мой список (или String) har был удвоен. Что мне делать, чтобы очистить строку (или, возможно, текст), чтобы она не отображалась дважды?

ответ

0

Что нужно сделать, чтобы очистить строку (или, возможно, текст) так, чтобы она не отображала ее дважды?

VBox имеет метод getChildren() который возвращает ObservableList. Таким образом, вы можете использовать clear(), чтобы удалить всех детей.