我一直试图了解使用计时器的基础知识,这样我就可以创建一个弹跳球程序,但我似乎无法正确实现计时器。理论上,该程序应该连续打印显示,但程序只是终止。如何解决此问题并修复计时器?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.JFrame;
public class DisplayStuff {
public static void main(String[] args) {
class TimerListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
System.out.println("Display me.");
}
}
ActionListener listener = new TimerListener();
Timer t= new Timer(1000, listener);
t.start();
}
}
答案 0 :(得分:3)
您的程序没有用于继续计时器的Swing事件线程。您需要将其放入可视化的Swing GUI中以启动Swing事件调度线程,然后启动计时器。这可以通过显示JOptionPane这个简单的东西来实现:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import javax.swing.JFrame;
public class DisplayStuff {
public static void main(String[] args) {
class TimerListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
System.out.println("Display me.");
}
}
ActionListener listener = new TimerListener();
Timer t = new Timer(1000, listener);
t.start();
// ***** add just this *****
JOptionPane.showMessageDialog(null, "foo");
}
}