看板 java 關於我們 聯絡資訊
※ 引述《H45 (!H45)》之銘言: ※ 引述《del680202 (DAINA)》之銘言: 43 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.247.13
del680202:看了一下原碼之後 的確是這個原因 感激不盡 03/23 17:43
H45:那個...多緒同步在 swing 有好用的 SwingUtilities.invoke.... 03/23 19:12
藉機請問一下,Swing中為了不讓處理時間過長導致整個視窗停住。 所以都會希望寫另一個thread來跑,可是如果是用invokeLater()方法, 那結果它還是會排到EDT裡面,視窗依舊會停住,直到處理完畢。 不過就我所知一般其實都不會這樣做,而是會利用SwingWorker的 doInBackground()方法來作到這樣的效果。 一般來說運作很正常也沒什麼問題,可是發現用了SwingWorker.execute()之後, 一樣會跑出因為多執行序而發生的ArrayIndexOutOfBound的Exception, (我不確定是不是我有兩個以上的SwingWorker在跑,但我有用一些方法讓 其中一個一定會先執行完畢後在讓另一個開始,另外我的狀況是發生在JTable) 或者是我使用上有什麼疏忽呢?
del680202:那個我試過 但是達不到我想要的效果.... 03/23 21:06
另原po的狀況應該可以用SwingWorker的 publish() & process()試試看, 不過會不會有Exception我就不知道了... 應該是不會,應該... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.229.2 ※ 編輯: SuM0m0 來自: 118.169.229.2 (03/23 22:09)