我有一个做一些工作的线程。还有一个javax.swing.Timer等待几秒钟并更新进度条。
现在我的问题是,我想执行更多代码,如
jTextArea1.append("continue ..\n");
当定时器完成时整个代码在一个Thread内运行。 有人能给我一个提示怎么做吗?
jTextArea1.append(String.format("%d seconds to wait ..\n", wait));
System.out.println("-------------------------------------------------------------");
waiting = true;
final Timer timer = new Timer(wait*1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
jProgressBar1.setValue(jProgressBar1.getValue() + 1);
if (jProgressBar1.getValue() == 100) {
synchronized (this) {
waiting = false;
this.notify();
}
((Timer) e.getSource()).stop();
}
}
});
synchronized (timer) {
timer.start();
while(waiting)
timer.wait();
}
System.out.println(waiting + " " + new GregorianCalendar().getTimeInMillis());
jTextArea1.append("continue...\n");
答案 0 :(得分:0)
下面:
if (jProgressBar1.getValue() == 100) {
您的计时器中已经有 代码,了解计时器应该"结束"现在。
那么,我会做什么:创建一个类似onTimerEnd()
的方法 - 并实现* all **当你的计时器结束 in 那个方法时你想要发生的事情 - 然后调用那种方法。