首页 > 解决方案 > JavaFX 11 多线程 NPE

问题描述

我正在使用 JavaFX。我使用 Scene Builder 。它创建了一个加载器和控制器类。我尝试从另一个线程更改文本区域值。

   @Override
    public void run() {
        Platform.runLater(() ->  load_text.setText("Hello World"));
    }

我做了一个像这样的线程:

       Controller loader= new Controller();
       Thread load=new Thread(loader);
       load.start();

在运行它的线程上导致:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at Loader.Controller.lambda$run$0(Controller.java:39)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:834)

我做错了什么?. 我正在使用推荐的 Platform.runLater(() 。这是否是 JVM 错误?

所有代码都在这里: https ://pastebin.com/bk6JbQ8v

标签: javamultithreadingjavafxnullpointerexceptionfxmlloader

解决方案


推荐阅读