0

我对此有点迷茫。所以这里有一些 ActionListener 的代码:

public static void main(String[] args)
  {

    ActionListener listener = new ActionListener(){

      public void actionPerformed(ActionEvent event){
        System.out.println("hello");

      }
    };
    Timer displayTimer = new Timer(5000, listener);
    displayTimer.start();


  }

它一遍又一遍地打印你好......我不太明白。为什么它不只打印一次?

谢谢

4

2 回答 2

2

因为您正在使用 Timer 并且没有调用displayTimer.setRepeats(false);

但是,我建议使用 aExecutorService而不是 Timer。看到这个问题。Java 中的 Timer 缺少一些东西,请参阅这个问题,它还将帮助您设置一个 ExecutorService ,它的行为就像Timer您习惯的那样。

于 2013-10-13T00:16:04.020 回答
1

正如 (Timer)[http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html] 的文档所说,您的构造函数使用初始延迟和介于 -事件延迟五秒。因此,计时器每五秒执行一次您的 ActionListener。

于 2013-10-13T00:15:34.173 回答