【发布时间】:2015-10-24 12:08:51
【问题描述】:
在使用 NetBeans 创建新的 JFrame 项目时,我一直在研究自动生成的代码,并在我的 main 方法中遇到了这个问题:
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TestClass().setVisible(true);
}
});
在阅读了一些内容后,我开始了解 invokeLater 的必要性,以便在 EDT 中处理 GUI 组件。也就是说,这里实现的new TestClass().setVisible(true); 行对我来说有点令人难以置信。我在创建一个新实例的上下文中得到它......
TestClass tclass = new TestClass();
tclass.setVisible(true);
...但我不太了解上面run() 方法中发生的事情。该代码是否创建了一个匿名类?我遇到过这个术语,但还没有完全理解。我假设它不是以我上面列出的“教科书”方式创建实例,因为没有变量(我无论如何都能看到)来引用该实例。
顺便说一句,在我看来,在 JFrame 类(或任何 GUI 类)中包含您的 main 方法并不理想,所以我可能会移动它。
【问题讨论】:
标签: java swing netbeans main invokelater