如何停止Swing Timer?

时间:2013-10-15 07:53:40

标签: java swing timer

我的代码有问题,因为我无法停止swing.timer

//这里有一些代码

我试着写一个if语句,但它不起作用。

Static int gScore = 1000;
t = new Timer(100, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        score01.setText("score: " + gScore);
        gScore--;     
    }
});
t.start();
t.setRepeats(true);
if(gScore== 970){//A
    t.stop();
    t.setRepeats(false);    
}//A

我希望在达到给定值时停止计时器并将其移除到JFrame

2 个答案:

答案 0 :(得分:0)

您的计时器将是最终的

t.cancel();
t.purge();

并在声明您的计时器时,将其设置为最终

final Timer t = new Timer(...)

答案 1 :(得分:0)

您应该按照以下方式更改代码:

static int gScore = 1000;
final Timer t = new Timer(100, new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    score01.setText("score: " + gScore);
    gScore--;
    if(gScore== 970){//A
      t.stop();
    }//A
  }
});
t.start();