如何在Java Swing中显示更改文本(即,显示更改秒的时间)

我正在寻找一种方法来将JFrame上的当前日期和时间显示为JLabel,但是它会自动更新。 一旦它被绘制到窗格,我不需要担心手动更新它,因为它会每2秒刷新一次。

有没有正确的方法呢? 而不是每2秒手动更改JLabel的文本值。

使用javax.swing.Timer确保在EDT上发生对Swing组件的更新。

 Timer t = new javax.swing.Timer(2000, new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ yourLabel.setText(...); } }); t.start(); 

使用Swing Timer 。 正如教程所解释的那样,它是工作所需的工具。

它们的唯一替代方法是在TimerTask嵌入SwingUtilities.invokeLater()SwingUtilities.invokeAndWait()