我正在使用Java小程序在学校的最后一个项目上工作,该Java小程序从给定的时间间隔倒数到零。当屏幕上的Rectangle遇到鼠标按下事件时,应执行计时器。但是这不会发生;该程序最终崩溃。我在网上看到了很多计时器的示例,但是许多示例使用的是Java内置的计时器类,而我没有使用。我认为必须有一种更简单的计时器方法。所有变量都已在类的顶部声明。
public boolean mouseDown(Event e, int x, int y)
{
if(start.inside(x,y))
{
timerAct = true;
startTime = System.currentTimeMillis() / 1000;
endTime = startTime + interval;
while (System.currentTimeMillis() / 1000 < endTime) {
while (startTime != System.currentTimeMillis() / 1000) {
startTime += 1;
timeLeft = (endTime - startTime);
}
}
timerAct = false;
}
repaint();
return true;
}
逻辑似乎可以正常运行,因为它始于System.out.println(),并且工作得很好。然后,将其转换为存储变量timeLeft。在绘画方法中,我有
g.drawString("Time: " + timeLeft, 420, 180);
打印剩余时间。我也有更新方法;但这似乎没有什么不同。而且我知道问题不在于我正在更改变量。我的鼠标按下方法有一个if语句,该语句带有另一个跟踪点击的矩形(未显示),并且它更新了applet窗口中屏幕点击的计数器,没有任何问题。任何帮助是极大的赞赏。
最佳答案
检查this。这很自我解释。