为什么此计时器不适用于 actionListener?



我想创建一个程序,每秒打印"tick"到控制台。我想使用ActionListener接口来做这件事。我创建了一个延迟为1000毫秒的计时器对象。

这种方法与ActionListener和Timer在其他项目中工作,但它不在这里。

如果有人能帮助我,我会很感激的。
package mainPackage;
import javax.swing.*;
import javax.swing.Timer;
import java.awt.*;
import java.awt.event.*;
public class Game extends Canvas implements ActionListener {
    
    Timer timer;
    
    public Game() {
        timer = new Timer(1000, this);
        timer.start();
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Tick");
    }
    
    public static void main(String[] args) {
        new Game();
    }
}

我是java新手,如果这是一个愚蠢的问题,我很抱歉!

提前感谢!

我认为问题是您的程序马上就要结束了。swing Timer不会阻止程序结束。尝试显示swing组件。当组件可见时,程序将继续运行,计时器将运行。

或者您可以使用java.util.Timer而不是javax.swing.Timer。util Timer可以创建非守护线程,这样可以使程序保持活动状态。

相关内容

最新更新