JavaFX在GUI中执行许多任务

时间:2018-08-06 09:13:21

标签: javafx task

我运行了一个线程来更新应用程序的打开时间。它运作良好。我扩展了Service类。完成此任务的时间更新了我的GUI,即Platform.runLater的textField

@Override
protected Task<Void> createTask() {
    return new Task<Void>() {
        @Override
        protected Void call() throws Exception {
            while (!isCancelled()) {
                if (isPause == false) {

                    try {
                        Platform.runLater(() -> {
                               currentTimeInApp = currentTimeInApp + 1;
                               upPanelController.timeInApp.setText
                                    (currentTimeInApp.toString());
                            }
                        });
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        System.out.println(e.getMessage());
                    }

                    if (isCancelled())
                        break;
                }
            }
            return null;
        }
    };
}

我想运行第二个线程,该线程也会更新GUI。我不能运行相同的线程。可以更新两个独立的线程GUI吗? 互联网上的大多数信息都专门针对一个主题。谢谢你的每一个建议

1 个答案:

答案 0 :(得分:2)

是的,您可以使用任意多个线程。您只需确保始终通过Platform.runLater进行GUI更新即可。