如何在程序运行时更新JavaFXGUI元素
我希望能够在程序执行时看到图形界面上的更新,而不是等到单击按钮事件结束如何在程序运行时更新JavaFXGUI元素,java,javafx,javafx-8,javafx-2,Java,Javafx,Javafx 8,Javafx 2,我希望能够在程序执行时看到图形界面上的更新,而不是等到单击按钮事件结束 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
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),请注意,计算和更新比演示示例更复杂,执行时间太长,这就是我希望在执行时预览更新的原因。您应该知道并使用线程概念 您的代码如下所示:
if (event.getSource() == Start) {
new Thread(new Runnable() {
@Override
public void run() {
//do the calculations
System.out.println("calculations is finished");
}
}).start();
// updating label
label.setText(" update me ");
new Thread(new Runnable() {
@Override
public void run() {
//do the other calculations
System.out.println("calculations is finished");
}
}).start();
// updating label for the second time
label.setText(" update me ");
}
但您必须了解计算之间可能出现的同步问题。
我建议您学习以下课程:
您需要将工作移动到后台线程上,请参见和软件包。然后,您可以将
标签
绑定到的消息
属性,并在所述任务
@Slaw中使用。感谢您的帮助,我将尝试了解您的参考资料。当您被卡住时,请提供一个演示问题的示例。与您的问题无关:请学习java命名约定并坚持它们。