javafx场景上的javafx线程异常

切特纳鲁斯塔吉

与我的问题相关:使用两个不同的值-javafx 绑定标签,现在我可以将两个值绑定到一个标签并在我的 Eclipse 中更新我的 UI。由于我的应用程序非常频繁地更新值,因此我在计时器中完成了绑定工作,如下所示:

Timeline timer = new Timeline(new KeyFrame(Duration.seconds(1), new 
EventHandler<ActionEvent>() {

    @Override
    public void handle(ActionEvent event) {
            answerQuesLbl.textProperty().bind(answerConnector.getNoOfAnswers().asString().concat("/").concat(answerConnector.getNoOfQuestions().asString()));
    }
}));

timer.setCycleCount(Timeline.INDEFINITE);
timer.play();

这在我的 eclise 中运行良好,但是当我使用
mvn assembly:assembly -Dmaven.test.skip=true

并使用 bat 文件运行项目,一切正常,即使值正在更新但不在 UI 上,它会给出如下异常:

Exception in thread "Thread-7" java.lang.IllegalStateException: 
    Not on FX application thread; currentThread = Thread-7
    at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:229)
    at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:423)

我的构建很好,我需要为此创建不同类型的线程吗?

痛泰

您的代码有两个问题:
1. 无需每秒重新绑定。
2. 绑定属性在执行更改的线程上接收更改通知,因此如果answerConnector.getNoOfAnswers在另一个线程上更改,您将收到 not-on-FX-thread 异常。

您可以更改事件处理程序,以便每秒设置文本(Timeline确保它将在 FX 线程上调用),或者确保在 FX 线程上执行原始更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaFX的场景上绘制渐变?

来自分类Dev

错误:线程“ JavaFX Application Thread”中的异常

来自分类Dev

JavaFX管理与场景生命周期相关的轮询线程

来自分类Dev

Controller的JavaFX过渡场景

来自分类Dev

JavaFx错误显示场景

来自分类Dev

javafx中的场景变化

来自分类Dev

javafx调用按钮以在场景上绘制矩形

来自分类Dev

按钮单击上的 JavaFX 8 显示其他场景

来自分类Dev

JavaFx-线程“ JavaFX应用程序线程”中的无尽异常java.lang.NullPointerException

来自分类Dev

JavaFX在场景中嵌入场景

来自分类Dev

JavaFX:线程“ JavaFX Application Thread”中的异常java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

来自分类Dev

如何从外部更新JavaFX场景?

来自分类Dev

子类化JavaFX舞台/场景

来自分类Dev

JavaFx不会更改场景

来自分类Dev

JavaFx场景查找返回null

来自分类Dev

JavaFX中的隐形舞台/场景

来自分类Dev

javafx和场景构建器

来自分类Dev

JavaFX中的场景是什么?

来自分类Dev

JavaFx不会更改场景

来自分类Dev

线程“ JavaFX应用程序线程”中的异常java.lang.NullPointerException

来自分类Dev

线程“JavaFX 应用程序线程”中的异常 java.lang.IllegalArgumentException:

来自分类Dev

JavaFX线程崩溃

来自分类Dev

JavaFX中的多线程

来自分类Dev

JavaFX线程崩溃

来自分类Dev

Javafx,组织线程

来自分类Dev

JavaFX中的多线程

来自分类Dev

在JavaFX中运行线程

来自分类Dev

JavaFX更改侦听器在哪个线程上执行?

来自分类Dev

JavaFX 和多线程:ObservableList.add() 上的 IllegalStateException