如何更新线程中的JFrame标签? - Java

Zev*_*eso 5 java user-interface jframe

我已经尝试了很多,但似乎无法让它发挥作用.

有人告诉我使用EDT以下例子.

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            //  Modify the GUI here
        }
});
Run Code Online (Sandbox Code Playgroud)

我已经阅读了很多这个主题但仍然不明白.我得到的是一个线程,但.invokeLater对我来说仍然没有意义.老实说,如果你能详细解释一下这将是一个很大的帮助!

程序目标:获取随后每秒创建的随机生成的密钥,以便在GUI中自动更新.

Joh*_*int 5

于是就有了EDT(Event Dispatch Thread)。屏幕上显示的所有操作均由 EDT 执行。每个 Swing 应用程序只有一个 EDT。

您处于某个任意线程中,并且想通过该线程更新 GUI?正如我所说,每个 swing 应用程序只有一个 EDT,因此您必须告诉 EDT 显示标签(或您想要的任何上下文)。

这里的想法是,将此 Runnable 推送到 EDT 从中提取的队列中。最终,当您的可运行对象之前的所有其他操作完成后,EDT 将处理您的可运行对象。