【发布时间】:2011-06-06 17:20:27
【问题描述】:
我有一个 JFrame 和以下组件。
JButton = jButton1 Progress Bar = progressBar 及其公共静态 JLabel = 状态及其公共静态
当点击按钮时,会执行不同的语句。我想在每个语句之后更新我的进度条。这是我的代码
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Task pbu = new Task(25, "Step 1....");
pbu.execute();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
pbu = new Task(50, "Step 2....");
pbu.execute();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
pbu = new Task(75, "Step 3....");
pbu.execute();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
pbu = new Task(100, "Done");
pbu.execute();
}
这是我用 SwingWorker 扩展的任务类
public class Task extends SwingWorker{
private int progress;
private String stat;
public Task(int pr, String st) {
progress = pr;
stat = st;
}
@Override
protected Object doInBackground() throws Exception {
NewJFrame1.progressBar.setValue(progress);
NewJFrame1.status.setValue(stat);
return null;
}
}
知道如何解决这个问题吗?
【问题讨论】: