2012-07-07 27 views

回答

3

我100%肯定你有一個Swing併發問題,你將Swing事件調度線程或EDT與長時間運行的進程綁定在一起。問題是Swing偶數線程負責執行所有Swing繪圖和用戶交互。如果它與一些長時間運行的進程(如文件或數據庫輸入或輸出)捆綁在一起,那麼它不能執行其職責,並且整個GUI變得凍結。解決方案是使用後臺線程(如SwingWorker),以便長時間運行的進程不會捆綁EDT,但需要注意更新Swing組件,例如JList或其型號爲的EDT

請查看Swing concurrency tutorial瞭解有關該問題及其解決方案的更多詳細信息。

+0

你以前是否是槍手? ;] +1 – user1329572 2012-07-07 21:24:04

+0

@ user1329572:對不起! – 2012-07-07 21:24:30

+0

我的程序中有多線程。它正在每個線程上進行文件轉換。如果我想要在每個線程完成時更新日誌,我是否需要擁有與線程一樣多的SwingWorkers? – snotyak 2012-07-07 21:28:33

相關問題