JLabel не будет обновляться, используя таймер для обновления времени каждые 3 секунды - PullRequest
0 голосов
/ 09 июля 2019

Я создаю таймер обратного отсчета и использую графический интерфейс с 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 секунд в минуту) и таким же образом с минутами, и так далее.

Выходные данные на моем графическом интерфейсе не изменяются.

...