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) 个答案