【发布时间】:2019-01-18 03:17:19
【问题描述】:
现在正在学习一点 Swing,偶然发现了两个教程,它们使用不同的方式制作了一个简单的 JFrame 窗口。
第一个实现 Runnable 并且在类中有一个 JFrame 对象变量:
class SwingDemo implements Runnable {
private JFrame frame;
@Override
public void run() {
frame = new JFrame("title");
... // setSize(), add components, etc
}
}
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new SwingDemo());
}
}
第二个教程没有实现Runnable,而是使用类构造函数来初始化JFrame,并通过匿名内部类调用构造函数
class SwingDemoAlt {
public SwingDemoAlt() {
JFrame frame = new JFrame("title");
... // again some code here
}
}
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new SwingDemoAlt();
}
}
}
}
这两种方式有何不同?一种方式更可取吗?
【问题讨论】:
标签: java swing runnable event-dispatch-thread