我有一个需要被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. android - 更新进度条
- 3. 从AsyncTaskLoader更新进度条?
- 4. 从IntentService更新进度条?
- 5. 进度条不更新
- 6. 实时进度条更新
- 7. WinRT - 更新进度条
- 8. Android进度条不更新
- 9. c#进度条不更新
- 10. C#进度条不更新
- 11. VLCJ:更新进度条视频进展
- 12. 使用Winforms更新进度条c#
- 13. Xamarin表单:进度条及其更新
- 14. 进度条更新崩溃javaFX
- 15. 从工作线程更新进度条
- 16. 更新HTML5进度条内XMLHTTPRequest.onreadystatechange
- 17. 更新iOS 5中的进度条
- 18. 动态更新进度条yiiframework
- 19. Android进度条(连续更新)
- 20. DownloadManager for Android更新进度条
- 21. 在AsyncTask doInBackground()中更新进度条?
- 22. C#WinForm BackgroundWorker没有更新进度条
- 23. 在Win32中不更新的进度条
- 24. 如何更新j进度条
- 25. Android的搜索条进度不更新
- 26. iOS的进度条不更新
- 27. 基于listviewitem焦点更新进度条
- 28. 更新Windows窗体中的进度条
- 29. 更新ASP页面中的进度条
- 30. MPNowPlayingInfoCenter停止更新进度条
http://stackoverflow.com/questions/277007/how-to-use -jprogressbar与你的问题非常相似。 – MemLeak
请发布您的代码 – Benjamin
@MemLeak我的程序的输入没有固定的大小,因此执行时间会有所不同。该程序使用遗传算法,并使用线程实现。 – Sashank