Отображение приращений таймера, когда поток останавливается? Java таймер / таймер - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь создать секундомер, который останавливается в соответствии с количеством секунд, которое пользователь вводит через GUI. Я хотел бы иметь возможность показывать каждую секунду go в метке, которая в настоящее время работает, только если я снимаю какие-либо ограничения на время остановки таймера. Но если я добавлю код, который останавливает таймер по истечении заданного времени, код выполняется как есть, и таймер останавливается по истечении указанного времени, но не показывает каждое увеличение в метке «secondsJLabel», которая показывает каждую секунду проходящее. Часть меня задается вопросом, может ли быть одновременно запущенный другой код, который просто ждет и проверяет, чтобы прошедшие секунды были равны количеству введенного пользователем количества секунд, а затем выполняется, когда он равен. Но я просто не умею искать то, что мне нужно.

Это не для школы, а для личного проекта. Открыта для любой критики, так как я новичок в кодировании. Это даже как вы делаете таймер?

Вот код от моей кнопки "go".

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);
...