我已经尝试了很多,但似乎无法使它正常工作。

在下面的示例中,我被告知要使用EDT。

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            //  Modify the GUI here
        }
});

我已经阅读了很多有关此主题的内容,但仍然不了解。我知道线程是什么,但是.invokeLater对我来说仍然毫无意义。老实说,如果您可以详细解释,这将是一个很大的帮助!

程序的目标:获取每秒不断创建的随机生成的 key ,以便以后在GUI中对其进行更新。

最佳答案

因此,有一个EDT(事件调度线程)。屏幕上显示的所有操作均由EDT执行。每个Swing应用程序只有一个EDT。

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

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

关于java - 如何在线程中更新JFrame标签? -Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4250406/

10-12 02:50