我正在尝试使用类生成并发送到progressBar
的值来更新SwingWorker
。
在GUI中我有这个方法:
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("progress")) {
int progress = (Integer) evt.getNewValue();
jProgressBar1.setValue(progress);
}
}
我也是这样做的:
private void startWorker(){
worker = WorkerUpdater.getInstance();
worker.addPropertyChangeListener(this);
worker.execute();
}
在SwingWorker
中,我有一个方法"setProgress"
来更新计算它的对象的变量值,然后我希望SwinWorker
读取此值蚂蚁重绘{ {1}}。
我如何在progressBar
方法中执行此操作?我有下一个方法但我希望每次doInBackground()
中属性“进度”的值发生变化时更新progressBar
。
如果我按照这种方式运行它,但我想只在其他类修改了SwingWorker属性中的de值“progress”时才更新progressBar。我该怎么办?
SwingWorker
答案 0 :(得分:0)
然后我希望
SwinWorker
读取此值蚂蚁重绘progressBar
。
这不是必要的 - SwingWorker
保证每当调用PropertyChangeListener
时将传递给setProgress
的属性更改通知将发生在事件派发线程上,所以propertyChanged
是更新进度条等组件的正确位置。