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


  }

そして、hello が何度も出力されます...よくわかりません。一度だけ印刷しないのはなぜですか?

ありがとう

4

2 に答える 2

2

タイマーを使用していて、呼び出していないためdisplayTimer.setRepeats(false);

ただし、ExecutorServiceタイマーの代わりに を使用することをお勧めします。この質問を参照してください。Java の Timer に欠けているものがいくつかあります。この質問を参照してください。これは、慣れ親しんだ のように動作する ExecutorService をセットアップするのにも役立ちますTimer

于 2013-10-13T00:16:04.020 に答える
1

(Timer) [http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html] のドキュメントにあるように、コンストラクターは初期遅延とその間の両方でタイマーを初期化します。 5 秒のイベント遅延。したがって、タイマーは ActionListener を 5 秒ごとに実行します。

于 2013-10-13T00:15:34.173 に答える