2011-11-22 93 views
0

如何將JProgressBarRunnableCallable線程結合使用,而不是SwingWorker類?jProgressBar vs Runnable或Callable線程?

我想有一個進度條,我可以通過一個正在運行的線程並能夠以百分比顯示它的進度!

+0

您會如何知道runnable有多遠?可運行程序本身必須提供進度支持,否則您可以在進度條組件中獲得的所有值均爲0%或100%。你可以想出一個時間解決方案,使用以前記錄的時間來計算估計的進度... –

+2

你可以做任何你想做的事情。關鍵是JProgressBar的更新必須在Event Dispatch Thread上完成。使用SwingWorker的關鍵是,這是爲你做的。長時間運行的代碼在單獨的線程中運行,然後在進度欄需要更新時調用process()方法。 process()方法在EDT上運行。如果您使用自己的線程,則當您要更新進度欄時,您有責任使用SwingUtilities.invokeLater()。 – camickr

回答