Perfect Voyage Asked:2020-01-21 18:48:39 +0000 UTC2020-01-21 18:48:39 +0000 UTC 2020-01-21 18:48:39 +0000 UTC 从单独的线程打开新窗口 772 我有一个“并行”线程,一个可以用Task<Void>. 该方法call()调用了一个应该打开一个新对话框的新对象。 但这不会发生。使用调试器跟踪堆栈,我看到进程陷入异常 没有错误,在一个线程中执行完全相同的方法可以正常工作。 你能告诉我为什么会发生这种情况吗?如何从任务中调用新的(模态)窗口。 java 1 个回答 Voted Best Answer insolor 2020-01-21T19:48:23Z2020-01-21T19:48:23Z 对 GUI 的所有更改(包括打开窗口)都必须在应用程序的 FX 线程上完成。其他线程中对 GUI 的任何更改都会引发异常java.lang.IllegalStateException: Not on FX application thread。 如果您需要在单独的线程中打开一个窗口,您需要通过以下方式执行此操作Platform.runLater: Platform.runLater(() -> { какие-то действия; });
对 GUI 的所有更改(包括打开窗口)都必须在应用程序的 FX 线程上完成。其他线程中对 GUI 的任何更改都会引发异常
java.lang.IllegalStateException: Not on FX application thread。如果您需要在单独的线程中打开一个窗口,您需要通过以下方式执行此操作
Platform.runLater: