我有一个JavaFX应用程序,并在那里有一个并发任务.当Task正在运行时,我想将updateMessage()中的消息附加到TextArea
因为绑定不会将新文本追加到TextArea,所以我使用了ChangeListener
worker.messageProperty().addListener((observable, oldValue, newValue) -> {
ta_Statusbereich.appendText("\n" + newValue);
});
Run Code Online (Sandbox Code Playgroud)
这是有效的,但不是每一次改变.我用System.out.println()检查了它,并在1到300的任务中计算
for (Integer i = 1; i <= 300; i++) {
updateMessage(i.toString());
System.out.println(i.toString());
}
Run Code Online (Sandbox Code Playgroud)
任务中的println()给了我想要的1,2,3,4,5,6,7,8等等,但我的TextArea显示1,4,5,8,9我然后添加了一个println ChangeListener得到相同的结果,1,4,5,8,9(结果是随机的,不总是1,4,5 ......)
为什么?有没有其他方法将消息文本附加到TextAres,也许与绑定?