我实际上是 Java 和 SWT 的新手,所以我的问题可能听起来很愚蠢。我已经查看了 intrnet(和 stackoverflow),但是对于像我这样的菜鸟来说,所有的答案和示例都太复杂了。
我有一门课,叫它管理员。当我单击一个按钮时,它会在另一个类(处理程序)中启动一个方法。
- 在 Admin 中,我有一个进度条,它应该随着 Handler 中的操作而增加。
- 我不知道 Handler 中的操作需要多少时间,但我知道我有 9 个。
- 我想以某种方式在每种方法完成时通知管理员。
到目前为止我所拥有的:(省略了非相关部分)
管理员.java:
ProgressBar bar = new ProgressBar(this, SWT.SMOOTH);
Button btn = new Button(this, SWT.NONE);
btn.setText("Update");
btn.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
btn.setEnabled(false);
thread.start();
}
});
Handler handler = new Handler();
final Thread thread = new Thread(){
public void run() {
handler.run();
for(int i=0; i<=10; i++) {
final int value = i;
try {
Thread.sleep(800);
} catch (Exception e) { }
display.asyncExec(new Runnable(){
public void run() {
bar.setSelection(value);
}
});
}
}
};
处理程序.java:
public class Handler implements Runnable{
void m1() {...}
void m2() {...}
...
void m9() {...}
public void run()
{
m1();
m2();
...
m9();
}
通过这个实现,对 handler.run() 的调用可以正常工作,并且进度条正在填充,但当然它们无论如何都不是“相关的”。
我会感谢你的智慧!非常感谢!