Java等待计时器直到完成

时间:2017-09-26 07:52:05

标签: java multithreading

我有一个做一些工作的线程。还有一个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");

1 个答案:

答案 0 :(得分:0)

下面:

if (jProgressBar1.getValue() == 100) {

您的计时器中已经有 代码,了解计时器应该"结束"现在。

那么,我会做什么:创建一个类似onTimerEnd()的方法 - 并实现* all **当你的计时器结束 in 那个方法时你想要发生的事情 - 然后调用那种方法。