Java Timer每隔X秒

Gri*_*per 4 java timer repeat

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

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();
Run Code Online (Sandbox Code Playgroud)

如何让这个计时器正确启动?

Ist*_*tso 7

你应该配对java.util.Timer使用java.util.TimerTask

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

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

    }
}, 1000,5000);
Run Code Online (Sandbox Code Playgroud)

1000表示1 second delay执行前和5000表示将repeated every 5 seconds.

要阻止它,只需打电话 t.cancel()