为什么在main方法中使用SwingUtilities.invokeLater?经过多年的Java编程,我总是习惯于创建main()这样的方法:public static void main(String[] args) {
runProgram();}但是最近我从Web上学习了一些代码并且有时看到这个代码而不是main()上面的常规用法:public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
runProgram();
}
});}我只是想知道:为什么要使用这个而不是通常的main()方式?当我试一试时,我看不出有任何区别。这两种方式有什么区别?感谢您阅读我和您的答案。
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
来自API的一些Swing组件不是线程安全的,这意味着它们可能会导致一些问题,比如死锁,所以最好通过使用Swing提供的Event调度程序线程创建和更新这样的swing组件,但不能从主线程或其他任何线程创建和更新从main创建的线程。
添加回答
举报
0/150
提交
取消