【问题标题】:Is it possible to detect a date change on a JCalendar JDateChooser field?是否可以检测 JCalendar JDateChooser 字段上的日期更改?
【发布时间】:2018-11-03 00:10:19
【问题描述】:

我想检测 JDateChooser 字段中的日期何时更改,以便我可以更新另一个字段。

这可能吗?如果是这样,我应该从哪里开始?我已经查看了文档,不幸的是没有添加 ActionListener 或 StateChangeListener 之类的方法(我的第一个想法)。

【问题讨论】:

    标签: java swing jcalendar jdatechooser


    【解决方案1】:

    com.toedter.calendar.JCalendarJComponent 继承listenerList 并实现java.beans.PropertyChangeListener。我会添加一个监听器,看看会发生什么。

    编辑:我认为您可以像使用 JCalendar 一样使用 addPropertyChangeListener()

    JDateChooser chooser = new JDateChooser();
    chooser.getDateEditor().addPropertyChangeListener(
        new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent e) {
                if ("date".equals(e.getPropertyName())) {
                    System.out.println(e.getPropertyName()
                        + ": " + (Date) e.getNewValue());
                }
            }
        });
    this.add(chooser);
    

    【讨论】:

    • +1 com.toedter.calendar.JDateChooser 就是一个很好的例子。
    • @trashgod 是的,对不起,我正在使用 JDateChooser。我知道它有一个 actionPerformed 方法,但我对 Java 中的事件处理很生疏!我习惯于使用 addXListener 方法。我将如何将通用侦听器挂钩附加到该方法?
    • @ghickman:该示例适用于当前版本 1.3.3;看起来发布的 API 是 1.2.1。
    • @trashgod:你是对的! @Catalina Island:谢谢你的例子,太完美了!
    【解决方案2】:

    我没试过,但addDateListener(DateListener listener) 看起来很合适。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2015-06-15
    • 2014-05-11
    相关资源
    最近更新 更多