這種情況是這樣的:我有JFrame的Java swing應用程序。有textarea你可以鍵入的東西,然後你在另一個textarea的搜索結果,當你選擇其中一個結果時,有一個按鈕「下載」。問題來了。當你點擊「下載」時,應用程序應該顯示下載文件完整性的信息。我已經用一個名爲DownloadManager的類來擴展Thread,它可以在一段時間內更新信息。不過,我擔心可能會出現同步問題。有沒有線程更新這種動態信息的標準方式? Java swing類中是否存在主循環或類似的東西?你怎麼做呢?哪個更好 - 主循環還是單獨的線程?
2
A
回答
3
看一看的SwingWorker:
http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html
可能有更好的方法,但是這是我下載的東西,更新進度條時使用我的進度條。
2
任何更新Java中的GUI都應該由GUI事件分派線程完成。要強制在此線程中運行方法,您需要使用SwingUtilities.invokeLater。做其他事情可能會導致您的GUI掛起,而不是更新或其他奇怪!
這是一個描述它比我更好的一個很好的教程:
2
沒有有沒有這麼多的問題同步。如果在Swing中使用後臺線程考慮使用SwingWorker。
相關問題
- 1. 哪個循環在性能上更好 - foreach還是?
- 2. 線程,列表和循環不是一個好主意?
- 3. 哪個更好,原子之間的競爭:單個Warp的線程還是不同的Warps線程?
- 4. 哪個循環具有更好的性能?增加還是減少?
- 5. 哪個更好? Java開發還是Webworks?
- 6. 哪個更好? XML,INI還是其他?
- 7. 哪個更好?碳還是可可? (Mac)
- 8. PHP - 退出還是哪個更好?
- 9. 克隆還是應用:哪個更好?
- 10. MySQL - 哪個更好:SELECT還是SELECT COUNT?
- 11. 哪一個更快?單獨的HTML還是嵌入在PHP中?
- 12. 單獨的線程與無限循環阻塞gui更新Netbeans
- 13. 哪個循環更高效/最好 - 的foreach或while循環
- 14. 哪個更好?循環內核或循環內核的CUDA GPU
- 15. 哪一個更好?
- 16. 哪個更快,MogoDB聚合還是自我實現「For」循環?
- 17. 哪個更好?線程或進程
- 18. 哪個更好:has_one(單列表)還是字符串列?
- 19. 循環通過子類還是有更好的方法嗎?
- 20. 線程或JMS哪個更好?
- 21. 是Scrapy單線程還是多線程?
- 22. 主線程是前臺線程還是後臺線程?
- 23. 在循環內部還是在循環外部聲明變量會更好嗎?
- 24. 運行for循環時哪個更好/效率更高的coffeescript?
- 25. 如何更新單獨(主)循環中的TKinter顯示?
- 26. 主線程不在線程模塊中的主循環錯誤
- 27. 次要消息循環與單獨輸入線程
- 28. 獨立駱駝路線,還是ActiveMQ內獨立的路線?
- 29. 哪個更好:使用多租戶插件還是不同的環境?
- 30. Java單線程循環