【发布时间】:2011-12-28 05:26:44
【问题描述】:
我想用SetValue(int)来改变一个进度条,但是它不起作用,它总是在进度完成时直接从0变为100。我尝试创建一个新线程来调用“setValue(int)” ,而不是调用表单UI线程,但是还是不行。
my code:
public class UpdateProgressBar extends Thread{
public UpdateProgressBar(javax.swing.JProgressBar progressBar){
this.progressBar = progressBar;
}
public void update(){
for(int i = 1; i <= 100; i++){
progressBar.setValue(i);
try {
sleep(10);
} catch (InterruptedException ex) {
Logger.getLogger(UpdateProgressBar.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private javax.swing.JProgressBar progressBar;
}
,progressBar是在UI线程中定义的,然后我在UI线程中UpdateProgressBar upb = new UpdateProgressBar(progressBar);调用它的更新方式upb.update();我是不是搞错了?
【问题讨论】:
标签: multithreading user-interface progress-bar