有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多线程Java事件队列。为什么一切都应该在invokelater方法中?

在我正在阅读的书中,每个带有多线程的GUI示例都有这样的内容:

public static void main(String[] args) throws Exception
{
    EventQueue.invokeLater(new Runnable()
    {
        public void run()
        {
            JFrame frame = new SomeKindOfFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    });
}

(我指的是事件队列)。但是代码不是在主(EDT)线程中自动执行的吗


共 (2) 个答案

  1. # 1 楼答案

    桌面GUI应用程序通常以这种方式工作。gui有一个线程,应用程序的其余部分有一个或多个线程。使用EventQueue可以指定GUI线程应该从其他线程执行的操作