Java のスイングとループに関する別のスレッドを投稿して申し訳ありません。私は他の人を読みましたが、どの解決策も私にとって本当に適切ではありませんでした. さて、問題に移ります。以下のように、ストップウォッチを実行するタイマーを持つ JFrame を拡張するクラスがあります。
class StopWatch extends TimerTask{
public void run() {
time.setText(String.format("%02d:%02d", minutes_elapsed,seconds_elapsed));
seconds_elapsed++;
if(seconds_elapsed == 60){
seconds_elapsed = 0;
minutes_elapsed++;
}
}
}
現在、ラベルの「時間」を更新する唯一の方法は、time.update(time.getGraphics()) を呼び出すときですが、これは以前の時間を塗りつぶします。私がすべきことはありますか?また、再描画、検証、およびペイントを試みました。ペイントは、更新と同じことを私にとって行います...何かアイデアはありますか? PSそれが重要かどうかはわかりませんが、以下のような public void start_timer() 関数でタイマーを作成します。
public void start_timer(int minutes, int seconds){
if(timer == null)
timer = new Timer();
timer.scheduleAtFixedRate(new StopWatch(),0,1000);
}