我是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) {
}
}
}
答案 0 :(得分:3)
问题基本上是长时间运行的任务会阻止更新GUI的事件调度线程。一种解决方案是在SwingWorker
中完成工作。
在后台线程中执行冗长的GUI交互任务的抽象类。 ..
有关详细信息,另请参阅本教程的Concurrency in Swing课程。
答案 1 :(得分:1)
解决方案确实是使用SwingWorker
。如果您想与JProgressBar
结合使用,我建议您查看JProgressBar
tutorial,其中有SwingWorker
与JProgressBar
结合使用的示例。或者您在此网站上快速搜索并找到this one
答案 2 :(得分:0)
您可以在此主题中了解有关此内容和SwingWorker的更多信息: