Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何停止摆动计时器?_Java_Swing_Timer - Fatal编程技术网

Java 如何停止摆动计时器?

Java 如何停止摆动计时器?,java,swing,timer,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--; } });

我的代码有问题,因为我无法停止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中

您的计时器应为最终计时器

t.cancel();
t.purge();
在声明计时器时,将其设置为final

final Timer t = new Timer(...)

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

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();

这些代码甚至无法编译。你将不得不说的不仅仅是“它不起作用”。把调试语句放在那个里,看看发生了什么。请格式化代码,然后发布完整的方法。你们是什么意思?我应该把t.取消();在if语句中?我已尝试缩进您的代码,但您的代码中到处都有多余的大括号,请先将所有代码放在一起,然后我们才能定义确切的添加位置;)我这样做了,但并没有解决我的问题。因为我不能在gScore后面放if语句--;我只能将if语句放在})之后;尽管如此,它并不是workTimer变量必须声明为final或类的成员变量<代码>计时器=(计时器)e.getSource()