gpt4 book ai didi

JavaFX:从线程更新 Controller 类中的 UI 元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:27:59 25 4
gpt4 key购买 nike

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

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 Controller 中的标签。我该怎么做?

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

最佳答案

你调用Platform.runLater(runnable)关闭 JavaFX UI 线程以执行一个 runnable,更新 JavaFX UI 线程上 Activity JavaFX 场景图的元素。

同时回顾 Concurrency in JavaFX , 与 TaskService类,看看这是否不是更适合您的特定任务的解决方案。

有关详细信息,请参阅:

关于JavaFX:从线程更新 Controller 类中的 UI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17873597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com