gpt4 book ai didi

multithreading - 如何避免不在 FX 应用程序线程上; currentThread = JavaFX 应用程序线程错误?

转载 作者:行者123 更新时间:2023-12-02 04:41:18 25 4
gpt4 key购买 nike

下面的代码片段给了我错误 不在 FX 应用程序线程上; currentThread=JavaFX 应用程序线程。该应用程序在 java 1.7 中运行良好,但当我将其移至 fx8 时,它现在出现错误。当我第一次尝试启动应用程序时,它按预期工作。但是在关闭舞台并再次打开它后,它无法工作。

该错误也是不明确的Not On fx application thread and current thread-javafx application thread。如果当前线程是,那么not on fx application thread是什么意思FX 应用程序线程。

progressDialog = createProgressDialog(service);
progressDialog.show();
progressDialog.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
// if (service.isRunning()) {
// service.cancel();
progressDialog.close();
// }
}
});
@SuppressWarnings("unchecked")
private Stage createProgressDialog(final Service<IStatus> service) {
stage = new Stage();

URL url = FileLocator.find(Activator.getDefault().getBundle(),
new Path("icons/xxx_16x16.png"), null); //$NON-NLS-1$
stage.getIcons().add(new Image(url.getFile()));
stage.setTitle("Downloading ..."); //$NON-NLS-1$
// Creating StackPane
stage.initModality(Modality.WINDOW_MODAL);
}

最佳答案

调用

Platform.runLater(new Runnable() {
@Override
public void run() {
// do your GUI stuff here
}
});

会修复它。

关于multithreading - 如何避免不在 FX 应用程序线程上; currentThread = JavaFX 应用程序线程错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56515896/

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