我正在尝试让 JLabel 显示日期并每秒更新一次。为此,我使用 Swing 的 Timer 类并实现我自己的名为 DateTimer 的类。 DateTimer 也是一个 ActionListener。
这是日期定时器:
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()
返回一个表示创建时的当前日期和时间的对象。它不会像您假设的那样自动更新。
关于java - Swing Timer 和 ActionEvents 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332835/