2012-02-11 57 views
0

我是一名java初學者。請讓我知道我該如何同時運行進度條和我的應用程序代碼。換句話說,我想讓我的進度條增加只要我的應用程序代碼正在做一些處理。請用代碼詳細說明它。 我認爲我必須同時添加兩個線程。一個線程更新進度條線程,但我不確定它是否正確。 我寫了這個代碼遞增進度條(硬編碼)Java進度條與應用程序代碼同時工作

 class ProgressMonitor implements Runnable { 

    public void run() { 
     jProgressBar1.setStringPainted(true); 
     //run untill 100% complete 
     while (progress < 100) { 
      //update the progressbar 
      jProgressBar1.setValue(++progress); 
      jProgressBar1.repaint(); 
      try { 

       //Sleep for .25 second 
       Thread.sleep(250); 
      } catch (InterruptedException ex) { 
      } 
     } 

    } 

回答

3

的問題基本上是在長期運行的任務阻塞事件調度線程更新GUI。一種解決方案是在SwingWorker中完成這項工作。

在後臺線程中執行冗長的GUI交互任務的抽象類。 ..

另請參閱教程的Concurrency in Swing瞭解更多詳情。

1

的解決方案確實是使用SwingWorker。如果您想結合使用JProgressBar,我建議您查看JProgressBar tutorial,該示例使用SwingWorkerJProgressBar的組合。或者你在這個網站上快速搜索並找到像this one