在java中创建一个计时器

时间:2016-04-10 16:27:25

标签: java swing timer

我尝试在java中创建一个计时器并在 JFrame 上显示它但是当我将计时器转到我的手机计时器时,手机中的计时器比我的原因要快吗?

我在我的计时器中将deley设置为10到每秒。

这是仅用于计时器的代码:

    import javax.swing.Timer;

    int min = 0, sec = 0, hundredSec = 0;

    timer = new Timer(10, new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            hundredSec++;

            if(hundredSec >= 99)
            {
                sec++;
                hundredSec = 0;
            }

            if(sec >= 59)
            {
                min++;
                sec = 0;
            }

            timerL.setText(String.format("%02d:%02d:%02d", min, sec, millisec));

        }
    });

抱歉英文不好。

提前感谢您的回答。

1 个答案:

答案 0 :(得分:1)

我相信你的问题与第三行代码有关。正如java API docs所说:“delay参数用于设置初始延迟和事件触发之间的延迟,以毫秒为单位。”这意味着每次都有10毫秒的延迟,这可能会导致您的延迟。要解决此问题,您可以将代码行更改为:

timer = new Timer(0, new ActionListener());

通过将10改为0,它会立即运行而不是慢慢落后。我建议您阅读this article以了解有关计时器的更多信息。