程序运行时如何更新JavaFX GUI元素

时间:2019-04-09 16:18:36

标签: java javafx javafx-8 javafx-2

我希望能够在程序执行时看到图形界面上的更新,而不必等到按钮上的click事件结束

with Scanner() as scanner:
    ports = scanner.scan(1)

这是我的代码(javaFXML)的简单示例,请注意,计算和更新比演示示例要复杂得多,并且执行时间太长,这就是为什么我要在执行时预览更新。

1 个答案:

答案 0 :(得分:0)

您应该了解并使用线程概念

您的代码将如下所示:

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 ");
    }

但是您必须知道计算之间可能发生的同步问题。 我建议您遵循此课程: https://www.youtube.com/playlist?list=PLBB24CFB073F1048E