Я создаю таймер обратного отсчета и использую графический интерфейс с JFrame. Я пытаюсь использовать label.setText (текст); и хотя я знаю, что Java скомпилирована, я думал, что использование таймера будет обновлять его каждые 3 секунды с помощью кода, который у меня есть. Любая помощь, пожалуйста? Я хочу обновить setText, но в моем коде это не выполняется, мне нужно повторно выполнить код, что по сути означает, что мой код не работает.
Я пытался настроить цикл while и другие операторы, но не могу понять, что не так.
int currentDay = now.getDayOfMonth();
int currentHour = now.getHour();
int currentMinute = now.getMinute();
int currentSecond = now.getSecond();
JLabel lblMinutesLeft = new JLabel("Minutes Left: "+ (60-currentMinute));
lblMinutesLeft.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblMinutesLeft.setHorizontalAlignment(SwingConstants.CENTER);
lblMinutesLeft.setBounds(125, 488, 160, 74);
contentPane.add(lblMinutesLeft);
JLabel lblSecondsLeft = new JLabel("Seconds Left: " + (60-currentSecond));
lblSecondsLeft.setFont(new Font("Tahoma", Font.PLAIN, 18));
lblSecondsLeft.setHorizontalAlignment(SwingConstants.CENTER);
lblSecondsLeft.setBounds(106, 573, 150, 50);
contentPane.add(lblSecondsLeft);
Timer timer = new Timer();
TimerTask tt = new TimerTask() {
public void run() {
while (currentDay != 10) {
lblMinutesLeft.setText("Minutes Left: "+ (60-currentMinute));
lblSecondsLeft.setText("Seconds Left: " + (60-currentSecond));
}
}
};
timer.schedule(tt, 1000, 3000);
Выход должен обновляться каждые 3 секунды с (60 - currentNum секунд в минуту) и таким же образом с минутами, и так далее.
Выходные данные на моем графическом интерфейсе не изменяются.