大量的互联网搜索。从来没有找到答案。我希望这篇文章能一劳永逸地为所有在谷歌上搜索这个问题的人解决这个问题。
问题的症结所在:
Есть TextArea
В него передаются строки следующим образом : TextArea.appendText(String text);
Но при повторном вызове кнопки, которая должна передать строки + значение из TextField
мы получаем :
тот же самый список переменных +
тот же самый список переменных +
новая строка,
но никак не "список переменных + новая строка".
在 Swing 和 JavaFX 中都遇到了这个问题。
未能解决。
建议的解决方案是:
TextArea.setText("");
или
TextArea.setText(null);
или
TextArea.clear();
или
RunLater(); - многопоточность
и прочее...
没有任何帮助。
对于那些不明白的人,我清楚地表明。
该程序在打开时会反映一组变量。
GO 按钮 - 解析左侧 TextField 中的值并将其放入数组中。它还应该更新 TextArea,即,将相同的数组传递给它,但使用一个新变量。
相反,值是重复的。
截图:
1)Состояние при запуске программы
2)Состояние после нажатия кнопки GO
这是 GO 按钮监听器
@FXML
private void updateMessages(ActionEvent event) {
new ListMessages();
for (int i = 0; i < ListMessages.text.size(); i++) {
areaForMessages.appendText(ListMessages.text.get(i) + "\n");
}
}
如何清除 TextArea?
事实证明,答案尽可能简单。
字符串数组是静态的,因此,值只是在那里添加,而不是被覆盖。出路是清理阵列。
之后,您还需要使用相同的 clear() 方法清除 TextArea。
很多人都遇到过这个错误。
解决方案很明显。=)