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语句结束时停止这段计时器?我真的为此烦恼,几乎到处搜寻
答案 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而不是创建像这样的对象,你也可以轻松地改变它的属性..