我只是想在我的框架的左下角有一個不確定的JProgressBar動畫,當長時間下載完成時。基本不確定JProgress Bar Usage
我已經瀏覽了很多教程,其中沒有一個對我很清楚。我只是想讓它在後臺下載文件時有動畫效果。我嘗試過的每種方式都不會爲進度條設置動畫效果,直到完成之後的。
我需要幫助,知道在哪裏放置我的下載()調用。
class MyFunClass extends JFrame {
JProgressBar progressBar = new JProgressBar();
public void buttonClicked() {
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
progressBar.setIndeterminate(true);
progressBar.setVisible(true);
// Do I do my download() in here??
}});
// Do download() here???
progressBar.setVisible(false);
}
}
在此先感謝!
解決方案
編輯:對於那些誰在未來也有類似的問題,對我來說,這是一個基本的問題基本解決。這不是我的代碼,而是一個普通的草圖。內部buttonClicked()
:
public void buttonClicked() {
class MyWorker extends SwingWorker(String, Object) {
protected String doInBackground() {
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
// Do my downloading code
return "Done."
}
protected void done() {
progressBar.setVisible(false)
}
}
new MyWorker().execute();
}
你應該看看http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html即使它看起來很複雜。你需要做的是在另一個線程(backgroundworker)中運行下載。然後主(gui)線程執行progressBar動畫。你這樣做的方式實際上是另一種方式。 – user845279
請參閱**編輯2 **到我的答案來糾正一些問題。 –