我正在创建一个倒数计时器,并使用带有JFrame的GUI。我正在尝试使用label.setText(text);函数,尽管我知道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),与分钟保持一致,依此类推。
GUI上的输出未更改。