[英]Best practice to place SWING components in a Java fullscreen application?
[英]Best practice to start a swing application
启动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组件。 看看摆动中的并发性 。 相关报价:
为什么初始线程不是简单地创建GUI本身? 因为几乎所有创建Swing组件或与Swing组件交互的代码都必须在事件派发线程上运行。 此限制将在下一节中进一步讨论。
所以是的,你需要使用invokeLater()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.