<分区>
Possible Duplicate:
How do I wait for a SwingWorker's doInBackground() method?
我读到过这样做是非常糟糕的做法,但我认为这是我实现目标的最佳方式... 在以下示例中,有没有一种方法可以阻塞主线程,直到 swing worker 完成?
public void flashNode(Node node, int noOfFlashes) {
GraphUpdater updater = new GraphUpdater(node, noOfFlashes);
updater.execute();
}
和 SwingWorker
类
public class GraphUpdater extends SwingWorker<Integer, Integer> {
Node node;
int noOfFlashes;
public GraphUpdater(Node n, int noFlashes) {
node = n;
noOfFlashes = noFlashes;
}
@Override
protected Integer doInBackground() throws Exception {
Color origColor = node.getColor();
for (int i=0; i<noOfFlashes; i++) {
changeNodeColor(node, Color.WHITE);
Thread.sleep(500);
changeNodeColor(node, origColor);
Thread.sleep(500);
}
return 1;
}
}
提前致谢