无法在[java]中执行计时器

时间:2014-08-13 23:18:15

标签: java swing timer actionevent javax.swing.timer

我一直试图了解使用计时器的基础知识,这样我就可以创建一个弹跳球程序,但我似乎无法正确实现计时器。理论上,该程序应该连续打印显示,但程序只是终止。如何解决此问题并修复计时器?

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();

}
}

1 个答案:

答案 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");

   }
}