Java 如何更改计时器

Java 如何更改计时器,java,swing,timer,Java,Swing,Timer,我不知道如何更改程序中的计时器 我想在程序运行时控制计时器 这是我的代码: Timer timer = new Timer(Difficulty, new ActionListener() { public void actionPerformed(ActionEvent e) { if(p.GameOver==0) { if(p.s==1)

我不知道如何更改程序中的计时器

我想在程序运行时控制计时器

这是我的代码:

Timer timer = new Timer(Difficulty, new ActionListener() {
            public void actionPerformed(ActionEvent e) 
            {
                if(p.GameOver==0)
                {
                    if(p.s==1)
                    {
                        System.out.println("S");
                        p.moveSquare(p.SnakeHeadX,p.SnakeHeadY+p.SnakeHeadH);
                        p.eatBlueSquare(p.SnakeHeadX,p.SnakeHeadY);
                        p.Border(p.SnakeHeadX,p.SnakeHeadY);
                        p.Colision(p.SnakeHeadX,p.SnakeHeadY);
                    }
                    if(p.d==1)
                    {
                        System.out.println("D");
                        p.moveSquare(p.SnakeHeadX+p.SnakeHeadW,p.SnakeHeadY);
                        p.eatBlueSquare(p.SnakeHeadX,p.SnakeHeadY);
                        p.Border(p.SnakeHeadX,p.SnakeHeadY);
                        p.Colision(p.SnakeHeadX,p.SnakeHeadY);
                    }
                    if(p.a==1)
                    {
                        System.out.println("A");
                        p.moveSquare(p.SnakeHeadX - p.SnakeHeadW,p.SnakeHeadY);
                        p.eatBlueSquare(p.SnakeHeadX,p.SnakeHeadY);
                        p.Border(p.SnakeHeadX,p.SnakeHeadY);
                        p.Colision(p.SnakeHeadX,p.SnakeHeadY);
                    }
                    if(p.w==1)
                    {
                        System.out.println("W");
                        p.moveSquare(p.SnakeHeadX,p.SnakeHeadY-p.SnakeHeadH);
                        p.eatBlueSquare(p.SnakeHeadX,p.SnakeHeadY);
                        p.Border(p.SnakeHeadX,p.SnakeHeadY);
                        p.Colision(p.SnakeHeadX,p.SnakeHeadY);
                    }

                }

            }
        });
timer.start();

如果我在程序运行时更改了难度,则没有效果。

您必须取消当前计时器,然后使用正确的值重新启动计时器(您将更改难度)

您必须取消当前计时器,然后使用正确的值重新启动计时器(您将更改难度的地方)

您必须取消当前计时器,然后使用正确的值重新启动计时器(您将更改难度的地方)

您必须取消当前计时器,然后使用正确的值重新启动计时器(您将更改难度的地方)

每次更新难度时,只需使用timer.setDelay(难度)。 有关计时器的更多信息,请参见:

每次更新难度时,只需使用timer.setDelay(难度)。 有关计时器的更多信息,请参见:

每次更新难度时,只需使用timer.setDelay(难度)。 有关计时器的更多信息,请参见:

每次更新难度时,只需使用timer.setDelay(难度)。
有关计时器的更多信息,请参见:

如何取消计时器?@user3212504,
如何取消计时器?
您阅读了计时器API吗?如何取消计时器?@user3212504,
如何取消计时器?
您阅读了计时器API吗?如何取消计时器?@user3212504,
如何取消计时器?
您阅读了吗计时器API?我如何取消计时器?@user3212504,
我如何取消计时器?
您是否阅读了计时器API?
如果我在程序运行时更改难度,则没有任何效果。
-您是刚更改了难度变量,还是实际调用了计时器上的方法来更改延迟?
如果我将难度更改为prgram运行时没有效果。
-您是刚刚更改了难度变量,还是实际上调用了计时器上的方法来更改延迟?
如果我在程序运行时更改了难度,则没有效果。
-您是刚刚更改了难度变量,还是实际上调用了计时器上的方法来更改延迟?
如果我在程序运行时更改难度,则不会产生任何影响。
-您是刚刚更改了难度变量,还是实际调用了计时器上的方法来更改延迟?