1

私は NetBeans で作業しています。トグルボタンをクリックした後、ボタンにカウントダウンを表示して、単純な 3-2-1 カウントダウンを作成したかったのです。私はJavaで時間に関連するものを扱うのは少し初めてですが、そのような単純なカウントダウンを作成する最も簡単な方法は、以下のように Thread.sleep() を使用するだけのようです。プログラムは 3 秒間待機し、ボタンのテキストをコマンド ラインに出力しますが、ボタン自体のテキストは変更されません。なぜこれが起こるのか、それを修正する方法はありますか? ありがとう!

jToggleButton1.setText("3...");
System.out.println(jToggleButton1.getText());
try{
    Thread.sleep(1000);
}
catch(InterruptedException e){}
jToggleButton1.setText("2...");
System.out.println(jToggleButton1.getText());
try{
    Thread.sleep(1000);
}
catch(InterruptedException e){}
jToggleButton1.setText("1...");
System.out.println(jToggleButton1.getText());
try{
    Thread.sleep(1000);
}
catch(InterruptedException e){}
4

1 に答える 1

2

問題は、イベントディスパッチスレッドですべての操作を実行していることです。したがって、UIを更新する機会はありません。これを正しく機能させるには、SwingWorkerまたはそれ以上のスイングタイマー(アクションコールバックを持つタイマー)を使用する必要があります

于 2012-04-04T22:05:13.363 に答える