Java - 更改计时器运行时的持续时间

标签 java timer timertask

我有一个 Timer,我用 delay 0 和 period 150 安排了 TimerTask。 现在我想更改period,但Timer已经在运行。 现在如何更改期间

private int penultimateStep = 1;
private int lastStep = 1;
private Timer move = new Timer();
private TimerTask movePlayer = new TimerTask(){
    public void run(){
        //Schritte ändern
        if(lastStep==3){
            lastStep = 2;
            penultimateStep = 1;
        }
        else if(lastStep==1){
            lastStep = 2;
            penultimateStep = 3;
        }
        else if(lastStep==2){
            if(penultimateStep==1){
                lastStep = 1;
                penultimateStep = 3;
            }
            else if(penultimateStep==3){
                lastStep = 3;
                penultimateStep = 1;
            }
        }
    }
};


...

move.schedule(movePlayer, 0, 150);

最佳答案

Timer and TimerTask - how to reschedule Timer from within TimerTask run

Resettable Java Timer

检查两个链接。这个问题可能与上述任一问题重复。

因此您可以按如下方式修改代码:

private int penultimateStep = 1;
private int lastStep = 1;
private Timer move = new Timer();

class MovePlayer extends TimerTask {
   public void run(){
       //Schritte ändern
       if(lastStep==3){
           lastStep = 2;
           penultimateStep = 1;
        }
        else if(lastStep==1){
            lastStep = 2;
            penultimateStep = 3;
        }
        else if(lastStep==2){
            if(penultimateStep==1){
                lastStep = 1;
                penultimateStep = 3;
            }
            else if(penultimateStep==3){
                lastStep = 3;
                penultimateStep = 1;
            }
        }
    }
}


...

move.schedule(new MovePlayer(), 0, 150);

干杯。

关于Java - 更改计时器运行时的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050838/

相关文章:

java - 如何使用 Selenium WebDriver + Java 获取浏览器控制台错误消息?

java - 逐行图像 Swing

java - 尝试在检测到鼠标移动时添加计时器

java - 致命异常 : Timer-0?

Java TimerTask 取消不起作用

java - Java中@notnull注解在2013年是什么情况?

c# - 停止时同步 Timers.Timer elapsed 方法

javascript - 屏幕没有更新

java - 在 Android 中使用单个计时器与多个计时器来调度 TimerTasks

java - Liferay 门户中的文档处理