為什么在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
提交
取消