【发布时间】:2014-04-10 21:18:58
【问题描述】:
我正在尝试使用类生成并发送到SwingWorker 的值来更新progressBar。
在 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 读取这个值并重新绘制progressBar。
如何在doInBackground() 方法中做到这一点?我有下一个方法,但我想在每次SwingWorker 中属性“进度”的值发生变化时更新progressBar。
如果我这样做,它就可以工作,但我只想在其他类修改 SwingWorker 属性中的 de 值“progress”时更新 progressBar。我该怎么做?
@Override
public Void doInBackground() throws Exception {
while(this.progress<100){
setProgress(this.progress+10);
this.progress += 10;
}
return null;
}
【问题讨论】:
标签: java swing swingworker