使用任务更新javafx UI而不使用Platform.RunLater

时间:2017-06-26 18:32:02

标签: java multithreading javafx pane

我想更新我的javafx用户界面,但我不想使用Platform.RunLater但是当我想更新我的窗格时:

Pane.getChildren().add(listview);

我得到java.lang.illegalStateException:不在java fx应用程序线程上;当前线程

1 个答案:

答案 0 :(得分:1)

您必须使用Platform.runLater()更新UI线程上的UI元素。

如果您有长时间运行的任务,请先执行任务,然后使用任务结果更新UI。

Object taskResult = GetLongRunningTaskResult();
Platform.runLater(() -> Pane.getChildren().add(taskResult));