使用Swing Timer和ActionEvents进行故障排除

时间:2011-06-13 15:50:07

标签: java swing user-interface date timer

我正在尝试让JLabel显示日期并每秒更新一次。为此,我使用Swing的Timer类并实现我自己的类DateTimer。 DateTimer也是一个ActionListener。

这是DateTimer:

public class DateTimer implements ActionListener {
    private int delay;
    private JLabel label;
    private Calendar cal;

    public DateTimer(int delay, JLabel label) {
        this.delay = delay;
        this.label = label;

        cal = Calendar.getInstance();
        new Timer(this.delay, this).start();
    }

    public void actionPerformed(ActionEvent e) {
        this.label.setText(this.cal.getTime().toString());
    }

}

我在代码中的其他位置调用此代码:

new DateTimer(1000, this.label);

我得到一次显示的日期,然后它不会更新。

我是Java GUI和处理操作的新手,所以请原谅我的无知。

1 个答案:

答案 0 :(得分:7)

java.util.Calendar.getInstance()返回一个对象,表示创建时的当前日期和时间。它不会像您假设的那样自动更新。