如果我们在主线程中创建 Java Swing 应用程序会发生什么?经验法则是我们必须在 EDT 中启动应用程序?请帮助。
user1806722
问问题
109 次
3 回答
2
Q1。经验法则是我们必须在 EDT 中启动应用程序
不是真正的经验法则 - 更像是库指定的要求:
一般来说,Swing 不是线程安全的。除非另有说明,否则所有 Swing 组件和相关类都必须在事件调度线程上访问。
Q2。如果我们在主线程中创建 Java Swing 应用程序会发生什么?
它可能有效或无效:行为未指定。在同一页面上给出了一个示例:
如果您在单独的线程上修改模型,您将面临异常风险和可能的显示损坏风险。
于 2012-11-15T17:26:38.527 回答
1
如果我们在主线程中创建 Java Swing 应用程序会发生什么?经验法则是我们必须在 EDT 中启动应用程序?
理论上没关系,重要的是避免在非静态类或 void 中创建 GUI,与在主类中创建的对象相比
在主类中创建的对象不能直接访问,与扩展 JComponents 相同的问题
重要的是在 初始线程中创建和显示 Swing GUI
于 2012-11-15T17:35:27.490 回答
1
我从以下类的变体开始每个 Swing 应用程序:
import javax.swing.SwingUtilities;
import com.ggl.stopwatch.view.StopwatchFrame;
public class Stopwatch implements Runnable {
@Override
public void run() {
new StopwatchFrame();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Stopwatch());
}
}
于 2012-11-15T18:18:34.980 回答