javaswingjcalendarjdatechooser

Is it possible to detect a date change on a JCalendar JDateChooser field?


I'd like to detect when the date is changed in a JDateChooser field so that I can update another field.

Is this possible? And if so where should I be starting? I've already looked at the documentation and unfortunately there are no methods for adding something like an ActionListener or StateChangeListener (my first thoughts).


Solution

  • com.toedter.calendar.JCalendar inherits a listenerList from JComponent and it implements java.beans.PropertyChangeListener. I'd add a listener and see what comes though.

    Edit: I think you can use addPropertyChangeListener() the same way JCalendar does.

    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);