首页 > 解决方案 > 在线程停止时显示计时器增量?Java定时器/定时器任务

问题描述

我正在尝试设计一个秒表,它根据用户通过 GUI 输入的秒数停止。我希望能够在标签中显示每一秒的过去,该标签目前仅在我取消对何时停止计时器的任何限制时才有效。但是,如果我添加一个代码在所需的经过时间后停止计时器,代码将按原样运行,并且计时器在指定时间后停止,但不会在“secondsJLabel”标签中显示每个增量,显示每秒过去了。我的一部分想知道是否可以同时运行另一个代码,它只是等待并检查经过的秒数是否等于用户输入的秒数,然后在它相等时执行。但我只是不知道如何搜索我需要的东西。

这不是为了学校,而是个人项目。对任何和所有批评持开放态度,因为我是编码新手。这甚至是你做计时器的方式吗?

这是我的“开始”按钮的代码。

long timeToStop = Integer.parseInt(desiredTimeJTextField.getText()); 

TimeKeeper myKeeper = new TimeKeeper();
TimerTask task = new TimerTask()      
{
    public void run()
    {
        secondsPassed++;
        secondsJLabel.setText(Integer.toString(secondsPassed));
    }
};
myKeeper.start(task);
try{
    Thread.sleep(timeToStop*1000);
} catch (InterruptedException exc){}
myKeeper.stop(task);

标签: javatimertimertaskstopwatch

解决方案


推荐阅读