如何在每个循环后更新JavaFX中的屏幕

时间:2013-10-16 01:50:36

标签: binding javafx

我当前有一个value属性,它绑定到标签

IntegerProperty value = new SimpleIntegerProperty(10);

// And then in the Constructor
label.textProperty().bindBidirectional(value, new NumberStringConverter());

并且在用户按下按钮后调用10,000次的函数更新value属性

value.setValue(value.get() + 1);

然而,当用户按下按钮时,程序“冻结”,然后在完成所有计算后,它在标签上显示10,000。我希望标签在计算时显示值“1”然后“2”一直显示为“10,000”。

1 个答案:

答案 0 :(得分:4)

“在JavaFX Application线程上实现长时间运行的任务不可避免地使应用程序UI无响应。最佳做法是在一个或多个后台线程上执行这些任务,并让JavaFX Application线程处理用户事件。”

这句话摘自Oracle文档: http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm

我对进度条有同样的问题,我按照这些建议解决了这个问题。