如何在JavaFX中从我自己的线程中显示一个新的舞台?

时间:2017-07-31 11:02:28

标签: java multithreading javafx

我必须在另一个线程中运行一些任务,当在线程run()方法中遇到某些条件时,我必须在其中显示一个带有图片的弹出窗口,但是尝试这样做会导致异常这告诉我,我不能在主UI线程之外创建任何阶段,现在有办法解决这个问题,我可以以某种方式从我的自定义线程访问UI线程并让它显示舞台吗?(注意:由于应用程序的性质,我必须使用自定义线程来检查条件,因为有8个不同的线程同时检查相同的条件。)

例外:

Exception in thread "Thread-4" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-4

1 个答案:

答案 0 :(得分:4)

您应该使用Platform.runLater(...)

包装您的操作
new Thread(() -> {
      Platform.runLater(() -> { 

          /* Your code goes here */

      });   
}).start();