カウントダウンをJFrame
シミュレートしたい (ロケットの打ち上げなど) があります。setVisible(false)
そこで、さまざまなコントロール ( ) を非表示にし、テキストと共に a を表示してフレームをセットアップしましたJLabel
(これは、カウントダウンするはずのテキストです: 3、2、1、Go)。
その上のテキストJLabel
は「3」から始まります。私の意図は、プログラムの実行を1秒間待機させてから、テキストを「2」に変更し、さらに1秒待ってから「1」に変更するなどです. 最後に、JLabel
すべてのコントロールを非表示にして再表示すると、すべてが通常どおり進行します。
私がやっていることはうまくいきません。適切な時間待機しているように見えます。完了すると、私の JFrame は見栄えがよく、意図したとおりに機能します。しかし、カウントダウン メソッドの 4 秒間は、白い JFrame しか表示されません。私が望む 3、2、1 ではありません。
これが私のコードです。誰かが私が間違っていることを見ることができますか? ありがとう!
public void countdown() {
long t0, t1;
myTest.hideTestButtons(true);
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.TwoSeconds();
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.OneSecond();
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.Go();
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.hideTestButtons(false);
myTest.repaint();
}
public void TwoSeconds() {
lblCountdown.setText("2");
}
public void OneSecond() {
lblCountdown.setText("1");
}
public void Go() {
lblCountdown.setText("Go!");
}