在此代码中,HelloWorldApp只是扩展了JFrame。 为什么我不需要放置应用程序' invokeLater方法中的对象定义? 为什么' app'需要最终?感谢
final HelloWorldApp app = new HelloWorldApp();
SwingUtilities.invokeLater( new Runnable()
{
public void run()
{
app.createAndShowGUI();
}
});
答案 0 :(得分:2)
所有对swing组件的UI状态的更改都必须在EDT(Event Dispatch Thread)中完成。因此,只要在构造函数HelloWorldApp()
中没有创建UI组件或更改UI组件的状态,'app'的定义就可以在主线程中完成。
我认为没有理由将该类指定为final。在最新的教程中,它不再是最终的。请参阅Hello World tutorial