问题的症结在于您正在更新组件:
pbCompleteness在 Event Dispatch Thread之外的其他线程上
。您可以
SwingUtilities.invokeLater在您的
run()方法中使用来补救此问题;例如
AtomicInteger value = new AtomicInteger(0);while (true) { SwingUtilities.invokeLater(new Runnable() { public void run() { pbCompleteness.setValue(value.get()); } }); // Do some work and update value.}
JProgressBar当您的工作线程继续运行时,这将导致在事件调度线程上更新(并重新绘制)。请注意,为了
value在“内部”匿名
Runnable实例中进行引用,我将其更改为
AtomicInteger。这也是理想的,因为它使线程安全。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)