7

在 JavaFX 中,我有一个 Controller 类,它从 FXML 文件中提取控制组件,并具有作用于组件的方法,此处显示为 Label:

public class ViewController {
    @FXML private Label labelStatus;

    public void updateStatusLabel(String label) {
        labelStatus.setText("Status: " + label);
    }    
}

我还有一个带有 run() 方法的 Java 线程,如下所示:

public class Server extends Thread {

    public void run() {
        super.run();    
    }
}

此服务器线程处理我的特定应用程序所需的一些套接字连接。建立连接后(在 run() 方法中——未显示),我需要更新 FXML 控制器中的标签。我该怎么做?

注意:我故意使我的代码和问题通用,以便它可以帮助其他人解决同样的问题。

4

1 回答 1

5

您从 JavaFX UI 线程调用Platform.runLater(runnable)以执行可更新 JavaFX UI 线程上活动 JavaFX 场景图的元素的可运行文件。

还要查看JavaFX中的 Concurrency 以及TaskService类,看看这是否不是更适合您的特定任务的解决方案。

有关更多信息,请参阅:

于 2013-07-26T06:09:41.170 回答