Я новичок в разработке Java Swing GUI. В какой-то пример кода, я вижу окно свинг показано с EventQueue.invokeLater()
:В чем разница между двумя способами отображения окна в Swing?
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");
}
Но, как я пытался, я могу также показать окно без использования 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");
}
Так какая разница? Когда следует использовать каждый метод?
проверка http://stackoverflow.com/a/3541425/2240409 – dazito
и http://stackoverflow.com/questions/6567870/what-does-swingutilities-invokelater-do – testinfected