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

时间:2011-06-13 13:18:10

标签: java swing date time jlabel

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

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

2 个答案:

答案 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