私は今のところ、半分ごとにPrinting...
を印刷するだけのプログラムを作っています。私の理解からスイングタイマーがインターバルでイベントを発生させない
package mainPackage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class Ticker {
public static void tick() {
System.out.println("Printing...");
}
public static void main(String args[]) {
ActionListener timerListener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
tick();
}
};
Timer mainTimer = new Timer(500,timerListener);
mainTimer.start();
}
}
mainTimer
オブジェクトが500msごとtimerListener
によって処理されるイベントを発射する必要があります。ここに私のコードです。私はこのコードを実行すると何も起こらない、私は何か明白な行方不明ですか?スイングevent dispatch thread下
を使用することを検討してください私はあなたがフォローしていないことを知っています:https://stackoverflow.com/help/someone-answers – c0der
これを私に指摘していただきありがとうございます。このエラーを修正したので、あなたの答えが何であるか教えていただけますか? – Psear
'SwingTimer'はEDTで動作します。 EDTがイベントハンドラに入る前にアプリケーションスレッドが終了するため、イベントを取得しません。作業するには、少なくとも最初のイベント(たとえば600ミリ秒)までメインスレッドをスリープ状態にする必要があります。 –