I think you are adding the property change listener to the wrong bean. I inspected the JCalendar code and the getDayPanel() method returns just a regular JPanel that I don't think knows about the "day" property you are interested in.
/**
* Returns the day panel.
*
* @return the day panel
*/
public JPanel getDayPanel() {
return dayPanel;
}
I think you should add your property change listener to the daychooser itself, which is the class that knows about the "day" property. Also, you might want to register for the "day" property of the day chooser:
cal = new JCalendar();
cal.setWeekOfYearVisible(false);
cal.getDayChooser().addPropertyChangeListener("day", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {
System.out.println(e.getPropertyName()
+ ": " + e.getNewValue());
}
});
Still, that will only give you the day that the user picked, not the entire date.