【问题标题】:How JavaFX application thread works?JavaFX 应用程序线程如何工作?
【发布时间】:2013-11-04 00:22:52
【问题描述】:

Java FX 应用程序线程有问题。这是一个伪代码:

showMenu();
//Contoller which waits for action(pressing button)...
showLoadingPic();
Thread.sleep(2000);
showMap();

问题是在showMenu()中显示的窗口出现休眠,showLoadingPic()根本没有显示,最后在showMap()中显示窗口。

showLoadingPic 中的场景有一个运行 2 秒的进度条,与 Thread.sleep(2000) 的时间相同。

所以看起来 javafx 应用程序线程块 showLoadingPic() 和 showLoadingPic() 在后台运行。

有人可以帮我解决这个问题吗?

提前谢谢你!

【问题讨论】:

    标签: multithreading javafx thread-sleep


    【解决方案1】:

    有一个 Java FX 事件调度线程,它处理所有与 GUI 相关的任务。您必须更新此线程中的所有 UI 组件。 长时间运行的任务,例如 Thread.sleep 永远不应在此线程中执行,因为窗口将挂起,并且 GUI 将冻结

    通过调用Platform.runLater,在应用程序主线程中执行您的所有代码,并仅在JavaFX 线程中执行GUI 任务。

    关于此主题的参考资料:

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 2020-08-28
      相关资源
      最近更新 更多