如何在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()
。