我正在寻找一种方法来将JFrame上的当前日期和时间显示为JLabel,但是它会自动更新。一旦它被绘制到窗格,我不需要担心手动更新它,因为它会刷新说,每2秒。
有没有正确的方法呢?而不是每2秒手动更改JLabel的文本值。
答案 0 :(得分:14)
使用javax.swing.Timer
确保在EDT上对Swing组件进行更新。
Timer t = new javax.swing.Timer(2000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
yourLabel.setText(...);
}
});
t.start();
答案 1 :(得分:7)
使用Swing Timer。正如the tutorial所解释的那样,它是工作所必需的工具。
使用它们的唯一选择是在SwingUtilities.invokeLater()
中嵌入SwingUtilities.invokeAndWait()
或TimerTask
。