gpt4 book ai didi

Java倒计时器不显示正确的时间

转载 作者:行者123 更新时间:2023-12-02 05:59:09 26 4
gpt4 key购买 nike

我目前正在开发一个项目,该项目有一个简单的倒计时,用户输入一个时间,然后从该时间开始倒计时。它基于 GUI,并向用户显示倒计时。我设法让它倒计时,但显示不正确。

例如,如果我输入 1 分 30 秒,它会从 1:30 倒数到 1:01,然后错误地显示 0:00,然后从 0:59 倒数。它是正确的,直到我达到分钟变为秒的程度,并且 1 秒内无法正确显示。

倒计时类:

class countdownClass implements ActionListener { //counts down then beeps
int counter;

public countdownClass(int counter) {
this.counter = counter;
}
public void actionPerformed(ActionEvent sc) { //counts down every second
counter--;
if(counter >= 1) { //a simple countdown
if(counter > 9){ //this statement is for aestetic purpose as before
seconds.setText("" + counter);
}else{
seconds.setText("0" + counter);
}
}

else if(minutesNum >= 1 && counter <= 0){ //if minute exists carry on the countdown
// 1:01 - > 1:00 - > 0:59

int minuteUpdate = minutesNum - 1;
if (minutesNum < 9){
minutes.setText("0" + Integer.toString(minutesNum));
seconds.setText("00");
if(counter <= 0){
minutes.setText("0" + Integer.toString(minuteUpdate));
}
}else{
minutes.setText("0" + Integer.toString(minutesNum));
seconds.setText("0" + Integer.toString(00));
minutes.setText("0" + Integer.toString(minuteUpdate));
}
counter = 60;
}

else if(minutesNum == 0 && counter == 0) { //once the countdown ends plays a beep
timer.stop();
seconds.setText("00");
finish.setText("Time is up!");
start.setEnabled(true);
try{
clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File("ring.wav")));
clip.start();
soundPlay = true;
}
catch (Exception e){
e.printStackTrace(System.out);
}
}
}
}

您能帮我找出代码出错的地方并为我提供修复程序吗?

感谢您的宝贵时间。

最佳答案

你的代码看起来有点过度设计。只需将用户输入的时间转换为秒,并每秒减少该值。然后打印结果,如下所示:

private static String secondsToMinutesAndSeconds(int time) {
int minutes = time / 60;
int seconds = time % 60;

return String.format("%02d:%02d", minutes, seconds);
}

例如1分30秒就是90秒。将 90 传递到上述方法中,您将得到 01:30。如果您单独需要分钟和秒值,则编辑该代码示例应该很容易。

关于Java倒计时器不显示正确的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com