日期:2014-05-20  浏览次数:20737 次

问下为什么要加EventQueue.invokeLater
Core Java中每当创建一个窗口的时候都会在外面写这么一个东西,比如:
Java code

import java.awt.*;
import javax.swing.*;

public class Test 
{
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
            {
                public void run()
                {
                    JFrame frame = new JFrame();
                    frame.setSize(400, 300);
                    frame.setVisible(true);
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                }
            });
    }
}


书上貌似也没有说为什么,只是说这样写会更安全,我不是很明白它的意思,谁能具体讲讲为什么?不加EventQueue.invokeLater行吗?

------解决方案--------------------
http://zhidao.baidu.com/question/161013053.html?push=ql