我想创建一个程序,每秒打印"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可以创建非守护线程,这样可以使程序保持活动状态。