我正在使用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。这很自我解释。

10-07 20:14
查看更多