我已经尝试了很多,但似乎无法使它正常工作。
在下面的示例中,我被告知要使用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/