我有一個需要被GUI調用的大程序。在用戶按下開始按鈕之後,GUI具有需要更新的進度條(例如5%... 10%)。 問題是執行的後臺任務沒有固定的執行時間。因此,在某種程度上可以測量在doInBackground()方法中執行的任務的進度(我正在嘗試使用SwingWorker)。或者我應該去一個不確定的進度條。 我無法清楚地理解Oracle教程頁面上提供的示例,但無法找到解釋如何使用進度欄的體面的頁面。 任何幫助將不勝感激。更新進度條
Q
更新進度條
0
A
回答
1
根據問題,我會用一個無限進度條
public class Indeterminate extends JProgressBar {
private static final long serialVersionUID = -281761375041347893L;
/***
* initial the ProgressBar
*/
public IndeterminateProgressBar() {
super();
setIndeterminate(true);
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
setVisible(false);
}
});
}
/**
* call this, if you start a long action
*/
public void start() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
setVisible(true);
}
});
}
/**
* if you have finished, call this
*/
public void end() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
setVisible(false);
}
});
}
}
像這樣來使用:
ActionListener startButtonListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new Thread(new Runnable() {
@Override
public void run() {
try {
progressBar.start();
// long operation
} catch (Exception e) {
// handle excpetion
} finally {
progressBar.end();
}
}
}).start();
}
};
+0
中使用「public void propertyChange(PropertyChangeEvent evt)」方法。謝謝你回覆我會試試這個。 – Sashank
相關問題
- 1. 進度條更新進度
- 2. 進度條不更新
- 3. 從AsyncTaskLoader更新進度條?
- 4. android - 更新進度條
- 5. WinRT - 更新進度條
- 6. 進度條更新android
- 7. c#進度條不更新
- 8. 進度條不更新
- 9. 實時進度條更新
- 10. 從IntentService更新進度條?
- 11. Android進度條不更新
- 12. C#進度條不更新
- 13. Python進度條更新?
- 14. VLCJ:更新進度條視頻進展
- 15. AJAX請求後更新進度條
- 16. 更新HTML5進度條內XMLHTTPRequest.onreadystatechange
- 17. 如何更新j進度條
- 18. 如何更新jQuery UI的進度條
- 19. 從工作線程更新進度條
- 20. 用Jquery更新進度條大小
- 21. 更新的WinSCP C#進度條
- 22. 從線程池c更新進度條#
- 23. 通過AsyncTask更新雙進度條
- 24. Qt Qt併發進度條更新
- 25. C#進度條不會更新backgroundworker
- 26. 進度條沒有用線程更新
- 27. 使用grails更新進度條
- 28. 更新iOS 5中的進度條
- 29. 進度條在javaFX中未更新
- 30. 導出文件時更新進度條
http://stackoverflow.com/questions/277007/how-to-use -jprogressbar與你的問題非常相似。 – MemLeak
請發佈您的代碼 – Benjamin
@MemLeak我的程序的輸入沒有固定的大小,因此執行時間會有所不同。該程序使用遺傳算法,並使用線程實現。 – Sashank