I am new to Java Swing GUI development. In some sample code, I see Swing window is shown with the EventQueue.invokeLater()
:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
MainWindow window=new MainWindow();
window.setDefaultCloseOperation(EXIT_ON_CLOSE);
window.setVisible(true);
}
});
System.out.println("main exited");
}
But as I tried, I can also show a window without using EventQueue.invokeLater()
:
public static void main(String[] args) {
MainWindow window=new MainWindow();
window.setDefaultCloseOperation(EXIT_ON_CLOSE);
window.setVisible(true);
System.out.println("main exited");
}
So what's the difference? When should I use each method?