我已經構建了自己的擴展JPanel組件。我已經添加了幾個方法,如calculateWhatever()... 我應該用invokeLater()調用這些方法嗎? 物質L & F並沒有抱怨,但我有罕見的隨機繪畫問題,我想知道如果他們正在擴展擺動組件內的計算髮生。使用擴展的Swing組件,線程疑問
0
A
回答
2
如果您正在進行大量計算,那麼在事件派發線程以外的線程中執行它們會比較謹慎。如果您使用的是JDK 1.6,則還可以使用SwingWorker
類而不是invokeLater
。
0
當您在這些方法中修改組件(或繪製)時,您只需使用invokeLater()(或使用SwingWorker)調用這些方法。如果您只是進行計算,則只需在例如訪問結果時進行同步。方法paint()。
0
通常應使用SwingUtilities.invokeLater
或SwingWorker
將GUI組件的更改與任何潛在的鎖定方案(文件I/O或遠程服務器調用)或處理器密集型操作隔離。如果你的計算做了任何磁盤讀寫操作,或者如果你打電話給服務器,我建議你重新組織你的代碼,在AWT線程中完成你所有的繪畫調用。同樣,如果你意識到你的calc需要很長的時間才能完成,而且你的GUI看起來很慢,那麼將它們分開是明智的。
相關問題
- 1. 如何不擴展Swing組件?
- 2. Java線程疑問
- 3. 使用流程擴展React組件
- 4. ExtJs組件擴展問題
- 5. Java Swing:擴展TreeNode
- 6. 線程活鎖疑問
- 7. 的Java Swing JTree的擴展
- 8. 線程擴展Thread
- 9. 使用John Resig擴展數組擴展
- 10. 關於Java SWING和Swing應用框架的一些疑問
- 11. 從線程內部操作Swing組件
- 12. java swing線程問題
- 13. 使用invokeLater或SwingWorker從另一個線程更新Swing組件
- 14. 疑問,在線程的概念
- 15. pyinotify的可疑線程問題
- 16. 線程可運行vs擴展線程
- 17. 使用線程訪問更多組件
- 18. Excel VBA疑問線
- 19. 處理單擊自定義Swing組件擴展JPanel?
- 20. JPanel /組件擴展,當一個行動態添加 - Java Swing
- 21. 關於Swing組件擴展,什麼是經驗法則?
- 22. java Swing - 擴展JComponent類以創建文本編輯器組件
- 23. php線程執行擴展
- 24. Angular2 - 擴展組件
- 25. 擴展Richfaces組件
- 26. 擴展控件和使用問題
- 27. Java線程懷疑
- 28. 線程池執行延遲疑問
- 29. php,多線程和其他疑問
- 30. Swing事件線程Java
因此,僅僅是擴展擺動組件的方法意味着默認運行在EDT中? – ktulur 2009-10-10 08:12:03
看看這篇文章。這是一個很好的總結。 http://java.sun.com/docs/books/tutorial/uiswing/concurrency/index.html – 2009-10-10 08:15:10