停止Java计时器

时间:2014-11-26 16:50:31

标签: java swing timer

new Timer(1000, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        timeout--;
        if(timeout>=1){
            status1.setText("Time out: " + timeout);
        }else{
            patient1.setText("Patient: ");
            status1.setText("Status: Available");
            doctor.get(0).setStatus(true);
            countDoc++;
            setDoc.setText(avDoc + countDoc);
            timeout = 24;
        }
    }
}).start();

如何在else语句结束时停止这段计时器?我真的为此烦恼,几乎到处搜寻

2 个答案:

答案 0 :(得分:4)

如果您试图在其ActionListener中停止Timer,那么您可以从ActionEvent的getSource()方法获取对Timer对象的引用,然后通过调用{来停止它{1}}参考:

stop()

或将其分解:

((timer) e.getSource()).stop();

并在上下文中:

// assuming an ActionEvent variable named e
Timer timer = (Timer) e.getSource();
timer.stop();

答案 1 :(得分:0)

首先定义计时器,如下所示:

Timer tim = new Timer(......)

tim.start();
tim.stop();

这将允许你在任何地方停止计时器(提供你使它全局化)

如果你将它绑定到var而不是创建像这样的对象,你也可以轻松地改变它的属性..