相关疑难解决方法(0)

JavaFX ChangeListener并不总是有效

我有一个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,也许与绑定?

java concurrency javafx changelistener

6
推荐指数
1
解决办法
3576
查看次数

标签 统计

changelistener ×1

concurrency ×1

java ×1

javafx ×1