?关于运行GUI类...请辅助

时间:2013-08-06 19:54:22

标签: java swing user-interface

考虑这两个类,你能否解释它们之间的区别..我知道第一个创建了一个类的对象,但这不是我的关注...... 特别是代码块包括和在下面的行,  ** javas.swing.swingUtiliies.invokeLater(new Runnable(){

//也导入javax.swing

public class HelloWorld extends JFrame{
public HelloWorld(){
    super("HelloWorldSwing");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel label = new JLabel("Hello World");
    getContentPane().add(label);

    pack();
    setVisible(true);
}

public static void main(String[] args) {
    HelloWorld h = new HelloWorld();
}
}

public class HelloWorldSwing {

private static void createAndShowGUI() {
    JFrame frame = new JFrame("HelloWorldSwing");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel label = new JLabel("Hello World");
    frame.getContentPane().add(label);

    frame.pack();
    frame.setVisible(true);
}

public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            createAndShowGUI();
        }
    });
}
}

1 个答案:

答案 0 :(得分:3)

第二个示例维护规则,以在Event Dispatch Thread上执行所有与GUI相关的代码,这是通过将带有所述代码的Runnable传递给invokeLater方法来实现的。

“GUI相关代码”是指实例化任何AWT / Swing类,调用它们上的任何方法或访问任何属性。