Java定时器每X秒一次

Java定时器每X秒一次,java,timer,repeat,Java,Timer,Repeat,所以,我基本上需要一个命令每5秒运行一次,但计时器不工作。。。 我尝试了很多不同的方法, 唯一有效的是线程; 但这导致我的整个游戏停止工作。。。 如果我尝试使用计时器,例如: Timer timer = new Timer(1000, new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { System.out.prin

所以,我基本上需要一个命令每5秒运行一次,但计时器不工作。。。 我尝试了很多不同的方法, 唯一有效的是线程; 但这导致我的整个游戏停止工作。。。 如果我尝试使用计时器,例如:

Timer timer = new Timer(1000, new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Hey");

            }
        });
        timer.setRepeats(true);
        timer.setCoalesce(true);
        timer.start();

如何使此计时器正确启动?

您应该将
java.util.timer
java.util.TimerTask

Timer t = new Timer( );
t.scheduleAtFixedRate(new TimerTask() {

    @Override
    public void run() {
      System.out.println("Hey");

    }
}, 1000,5000);
1000表示执行前的
1秒延迟
&每5秒将重复一次5000个方法


要停止它,只需调用
t.cancel()

您将其设置为1000,即1秒,而不是5秒。是的,我知道,但即使我将其设置为5000,它仍会执行相同的操作将其放入新线程并在该线程上调用sleep,那么游戏将不会停止工作如果您需要,我可以给您答案我会尝试,并发表另一条评论,告诉你它是否有效,但无论如何,感谢就像一种魅力!非常感谢你!