🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
每个Java应用程序都从`main`方法开始,它的生命周期很短,它只负责启动其它线程后就退出了。 <br/> **单一线程规则:除了事件分配线程,不要在任何线程中接触Swing组件**。下面为新、旧版本的单一线程规则: ``` // 新的单一线程规则 public static void main(String[] args) { EventQueue.invokeLater(() -> { // 在事件分配线程中显示UI JFrame frame = ...; frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }); } // 旧的单一线程规则,存在的问题是:用户界面的初始化可能会引起事件分配线程的动作与主线程main的动作发送冲突。 // 而使用EventQueue.invokeLater就不会出现这样情况。 public static void main(String[] args) { // 不在事件分配线程中显示UI JFrame frame = ...; frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } ```