我正在尝试获取一个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和处理操作的新手,所以请原谅我的无知。
java.util.Calendar.getInstance()
返回一个对象,表示创建时的当前日期和时间。它不会像你想象的那样自动更新。