大家好我看过Swing GUI正在推出这样的
public class Main {
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
new Gui();
}
});
}
}
以这种方式启动它有什么好处?
答案 0 :(得分:5)
不仅仅是好处,我想说这是必要的,因为大多数Swing组件都不是线程安全的。 invokeLater
将在Swing事件调度线程内运行任务,避免线程干扰或内存一致性错误。
答案 1 :(得分:4)
Swing是单线程的。您需要将GUI更改排队到swing事件派发线程。这不是一个优势,而是一项要求。否则,行为未定义。
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html