【发布时间】:2019-08-31 00:07:52
【问题描述】:
我希望能够在程序执行时在我的图形界面上看到更新,而不是等到按钮上的点击事件结束
public class MainController implements Initializable {
@FXML
private label label;
@Override
public void initialize(URL url, ResourceBundle rb) {
}
private void Event(ActionEvent event) {
// start is a button
if (event.getSource() == Start) {
// calculations
// updating label
label.setText(" update me ");
// other calculations
// updating label for the second time
label.setText(" update me ");
}
}
}
这是我的代码(javaFXML)的一个简单示例,请注意计算和更新比演示示例更复杂,执行时间太长,这就是为什么我想在执行时预览更新。
【问题讨论】:
-
您需要将工作移至后台线程——参见Concurrency in JavaFX 和
javafx.concurrent包。然后,您可以将Label绑定到Task的message属性并在Task内部使用updateMessage。 -
@Slaw 感谢您的帮助,我会尽力了解您的参考。
-
当您遇到问题时,请提供minimal reproducible example 来说明问题。与您的问题无关:请学习 java 命名约定并遵守它们。
标签: java javafx javafx-8 javafx-2