まず、これは重複する質問ではありません。私はちょうどカウントダウンタイマーと詰め物にトラブルを抱えている。コードを実行するたびに、静的になり、計画どおりに実行されません。countdown timer分と秒の問題Java
ここにコードがあります。私はコンストラクタでそれを行います。私が間違っていた場所?前もって感謝します。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public static int counterSeconds = 0;
public static int counterMinutes = 10;
public static Timer timer;
public Quiz1Start() {
do {
Quiz1Start.timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(Quiz1Start.counterSeconds == 0) {
Quiz1Start.counterSeconds = 60;
Quiz1Start.counterSeconds--;
Quiz1Start.counterMinutes--;
Quiz1Start.jLabelMinute.setText(String.valueOf(counterMinutes));
Quiz1Start.jLabelSeconds.setText(String.valueOf(counterSeconds));
} else if(Quiz1Start.counterMinutes == 0) {
Quiz1Start.timer.stop();
}
}
});
timer.start();
} while(counterMinutes == 0);
}
私はそれをif-elseの外に置こうとしますが、ActionListenerを宣言する前に、この両方は動作しません。 ._。 – Asyraf
私と一緒に質問をすることはたくさんあります。なぜコンストラクタ内でループするのですか?そして、なぜ、例えば 'start'メソッドではないのでしょうか。二番目。各ループ/サイクルごとに、独自の値を持つ新しいフレッシュタイマーを作成します。何が起こると思いますか?タイマーリスナーとwhileループ内で分が渡されるのはなぜですか?そのコードをすべてメソッドに入れて、コンストラクタの代わりにseparetlyを呼び出してみてください。 whileループを削除するだけでなく、ここでは使用しないためです。 – n247s