考虑这两个类,你能否解释它们之间的区别..我知道第一个创建了一个类的对象,但这不是我的关注...... 特别是代码块包括和在下面的行, ** 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();
}
});
}
}
答案 0 :(得分:3)
第二个示例维护规则,以在Event Dispatch Thread上执行所有与GUI相关的代码,这是通过将带有所述代码的Runnable
传递给invokeLater
方法来实现的。
“GUI相关代码”是指实例化任何AWT / Swing类,调用它们上的任何方法或访问任何属性。