1

私は次のコードを持っています

new Timer(300, this).start();

この

public void actionPerformed(ActionEvent e) {
   //do something
}

を実装する同じクラスでActionListener

問題は、のコードが実行される前にプログラムが終了することactionPerformedです。少なくとも私はそれが起こっていることだと思います!

何もすることがないときに実行を続けるようにJavaに指示するにはどうすればよいですか?

ありがとう!

編集:それはjavax.swing.Timerです

4

2 に答える 2

2

Timerデーモンを使用します-プログラムのThread終了を妨げません。

を使用していますが、環境javax.swing.Timerで実行しているようには見えません。Swing

を使用し、java.util.Timer必ずで作成する必要がありますnew Timer(false)Threadこれにより、アプリケーションを開いたままにする非デーモンでビルドされます。

これは、アプリケーションを終了するためcancel()にを呼び出す必要があることを意味します。Timer

于 2013-03-24T17:02:19.287 に答える
1

Javaプログラムは、デーモン以外のすべてのスレッドが終了するたびに終了します。したがって、メインスレッドまたはデーモン以外のスレッドの少なくとも1つを実行し続けます。

于 2013-03-24T17:01:55.517 に答える