java - Swing Timer 和 ActionEvents 的问题

标签 java swing user-interface date timer

我正在尝试让 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/

相关文章:

java - Swing 组件在自定义布局管理器中不可见

java - HttpClient 和连接超时

java - 您能解释一下为什么第一个未包装的方法引用无法编译吗?

java - 维护 PriorityQueue 中的条目顺序

java - 选择单选按钮后如何关闭 JOptionPane?

Java Swing 问题 - 使用调色板

html - 我怎样才能使弹出窗口可滚动而没有内容

ios - 添加 View 后如何调整uiscrollview(自动布局)

user-interface - 如何让用户阅读错误信息?

java - 将对象数组转换为自定义类型数组