启动Java swing应用程序的最佳实践方法是什么?也许还有另一种方法可以做到这一点。
我想知道是否必须使用SwingUtilities类启动应用程序(可能的发动)(否)(第一种可能)。
public class MyFrame extends JFrame {
public void createAndShowGUI() {
this.setSize(300, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// add components and stuff
this.setVisible(true);
}
public static void main(String[] args) {
// First possibility
MyFrame mf = new MyFrame();
mf.createAndShowGUI();
// Secound possibility
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MyFrame mf = new MyFrame();
mf.createAndShowGUI();
}
});
}
}
最佳答案
只有第二种方法是正确的。必须仅在事件分发线程中创建和访问Swing组件。参见concurrency in swing。相关报价:
所以是的,您需要使用invokeLater()
。
关于java - 启动 Swing 应用程序的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18976990/