2010-11-26 57 views
2

這種情況是這樣的:我有JFrame的Java swing應用程序。有textarea你可以鍵入的東西,然後你在另一個textarea的搜索結果,當你選擇其中一個結果時,有一個按鈕「下載」。問題來了。當你點擊「下載」時,應用程序應該顯示下載文件完整性的信息。我已經用一個名爲DownloadManager的類來擴展Thread,它可以在一段時間內更新信息。不過,我擔心可能會出現同步問題。有沒有線程更新這種動態信息的標準方式? Java swing類中是否存在主循環或類似的東西?你怎麼做呢?哪個更好 - 主循環還是單獨的線程?

回答

2

任何更新Java中的GUI都應該由GUI事件分派線程完成。要強制在此線程中運行方法,您需要使用SwingUtilities.invokeLater。做其他事情可能會導致您的GUI掛起,而不是更新或其他奇怪!

這是一個描述它比我更好的一個很好的教程:

http://www.javamex.com/tutorials/threads/invokelater.shtml

2

沒有有沒有這麼多的問題同步。如果在Swing中使用後臺線程考慮使用SwingWorker

相關問題