1

Java アプレットでストップウォッチを作成しようとしています。問題は..「数字」というテキストフィールドがあります。入力を取得し、開始ボタンを押すと、フローは以下のループに進みます... //私は NETBEANS を使用しています! 数値フィールドのテキストを1秒ごとに1ずつ減らす必要があります..しかし、これは起こっていません。コードは正常に動作します..しかし、ループの実行中ではなく、時間の完了後に「0」が表示されます.

private void startActionPerformed(java.awt.event.ActionEvent evt) 
{                                      
    int i = Integer.parseInt(number.getText());
    number.setText(Integer.toString(i));

    while(i!=0)
    {
        System.out.print(i);
        //number.setText(Integer.toString(i));
        number.setText("");
        try{Thread.sleep(900);}catch(Exception e){e.getMessage();System.out.println(e);}
        i--;
    }
}  
4

1 に答える 1

5

while ループは正常に動作していますが、Thread.sleep によって Swing イベント スレッドがスリープ状態になり、GUI 全体がスリープ状態になります。代わりにスイングタイマーを使用してください。

于 2013-10-12T19:51:26.960 に答える