Я пытаюсь создать секундомер, который останавливается в соответствии с количеством секунд, которое пользователь вводит через 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);