有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JLabel不会更新,使用计时器每3秒更新一次时间

我正在创建一个倒计时计时器,并使用带有JFrame的GUI。我正在尝试使用标签。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 of seconds转换为分钟)和分钟,依此类推

我的GUI上的输出没有改变


共 (0) 个答案