不要循环。无论是什么应用程序,上述无限循环都会对资源产生持续的需求。
在这种情况下,您似乎正在使用 Swing。这对应用程序来说更糟Swing
。无限循环阻止 UI 更新。
改用Swing Timer并设置一个足够大的周期间隔,以允许观察更新,并减少 CPU 的开销。1000
毫秒应该做。
public class TimerDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Timer Demo");
final JLabel timeLabel =
new JLabel("-----------------------------------------------");
Timer timer = new Timer(1000, new ActionListener() {
SimpleDateFormat format = new SimpleDateFormat("HH' hours 'mm' minutes 'ss' seconds'");
@Override
public void actionPerformed(ActionEvent e) {
Date date = new Date();
timeLabel.setText(format.format(date));
}
});
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(timeLabel);
frame.setVisible(true);
frame.pack();
timer.start();
}
});
}
}