如何使用 javafx 执行 Timer 类,其中 javafx 对象在内部发生变化

我试图让 FXML 标签在特定的时间间隔内自行刷新,但我在下面显示了一个异常。


我在这里的尝试:


 public static void showActualViewer(MixerChannel mixerChannel, Label label){

        Platform.runLater(new Runnable() {

            @Override

            public void run() {

                Timer timer = new Timer(1000, new ActionListener() {

                    @Override

                    public void actionPerformed(ActionEvent e) {

                        label.setText("Actual Viewers : " + mixerChannel.viewersCurrent);

                        System.out.println("works");


                    }


                });

                timer.start();

            }

        });


    }

错误:线程“AWT-EventQueue-0”中的异常 java.lang.IllegalStateException:不在 FX 应用程序线程上;currentThread = AWT-EventQueue-0


慕尼黑5688855
浏览 169回答 1
1回答

侃侃尔雅

您正在使用 Platform.runLater(); 在 java fx 线程中设置事件处理程序;但是,actionPerformed() 方法中的代码将在事件线程上运行。要解决此问题,请使用 Platform.runLater() 将 actionPerformed() 中的代码包围起来
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java