我有一个 StopWatch 类,我想实现 Lap 功能
当按下 Run/Stop 按钮时,计时器开始在显示屏上计数。如果再次按下运行/停止按钮,计时器将停止。如果再次按下它,计时器将继续计数,依此类推。如果在计时器运行时按下单圈/重置按钮,显示屏将冻结,并显示单圈时间,并且计时器继续计数(只是不显示)。如果再次按下 Lap/Reset 按钮,显示屏将恢复实时显示计时器。如果按下 Lap/Reset 按钮,则显示会冻结,依此类推。如果在计时器运行时按下 Lap/Reset 按钮,显示屏将冻结(但计时器继续运行)。如果现在按下 Run/Stop 按钮,计时器将停止计数,但显示屏会继续显示单圈时间。如果按下 Lap/Reset 按钮,然后显示屏变为显示计时器(现在已停止)。如果现在按下 Run/Stop 按钮,计时器将继续计数。或者,如果按下圈数/重置按钮,计时器将重置为零。
public void startStop() {
timer = new Timer(100, new TimerHandler());
if (!isRunning) {
isRunning = true;
timer.start();
} else {
isRunning = false;
timer.stop();
}
//If now the Run/Stop button is pressed the timer resumes counting
if(!lapPress && !isRunning){
isRunning = true;
}
}
public void lapReset() {
if (!lapPress) {
lapPress = true;
} else if (lapPress) {
lapPress = false;
}
System.out.println(isRunning + " " + lapPress);
// Lap pressed + timer running -> show lap-time + timer continue
if (isRunning && lapPress) {
timer.stop();
}
// Lap press + timer running
if (isRunning && !lapPress) {
timer.start();
}
}
我只是无法让我的膝上功能工作。基本秒表工作正常,知道吗?我更新了要求,只是想检查我按下按钮的逻辑,现在如果我点击开始和圈显示将冻结,但如果我点击开始开始和圈显示将继续更新。