2014-02-17 78 views
0

我正在使用外部庫從Mega下載文件,但我需要一個進度條來顯示下載到用戶的持續時間。我已經閱讀了很多有關stackoverflow的progressbar相關文章,但問題是,我不知道在我的代碼中花了那麼長時間才能添加進度條。如何添加進度條以在Java中顯示下載狀態?

在哪裏以及如何添加進度條以顯示下載狀態?

try { 

     URLConnection urlConn = new URL(file_url).openConnection(); 
     print(file_url); 
     is = urlConn.getInputStream(); 
     while ((read = is.read(buffer)) > 0) { 
      cos.write(buffer, 0, read); 
     } 
    } finally { 
     try { 
      cos.close(); 
      if (is != null) { 
       is.close(); 
      } 
     } finally { 
      if (fos != null) { 
       fos.close(); 
      } 
     } 
    } 
    print("Download finished"); 
} 

回答

0

你可以建立一個進度條對話框,預防性表現出來,然後委託你的昂貴幕後的下載過程的SwingWorker

SwingWorker是一種Runnable對象(它將在您的主線程後面執行),它專門用於更新圖形元素(publish更改爲它的工作)。

看一看這個計算器的問題:

SwingWorker ProgressBar

+0

你知道這麼久有什麼需要的代碼,因爲它不是我的代碼? – Engin

+0

對不起,我不明白你有任何性能問題。如果你認爲你的代碼沒有正確執行,你應該嘗試對它進行分析(在你最喜歡的IDE中有這樣的工具,或者你可以嘗試手動添加跟蹤每個任務花費的時間)。有了這些信息(你花了多少時間和地點),我們可以考慮優化它。 –

+0

我知道編輯後的代碼部分需要很長時間,但我不知道如何在這種情況下使用進度條。我刪除了不重要的部分代碼,所以我希望你能更容易解釋它。 – Engin

相關問題