code: public void propertyChange(PropertyChangeEvent evt) {
  		if (calendar != null) {
  			Calendar c = (Calendar) calendar.clone();
  
  			if (evt.getPropertyName().equals("day")) {
  				c.set(Calendar.DAY_OF_MONTH, ((Integer) evt.getNewValue()).intValue());
  				setCalendar(c, false);
  			} else if (evt.getPropertyName().equals("month")) {
  				c.set(Calendar.MONTH, ((Integer) evt.getNewValue()).intValue());
  				setCalendar(c, false);
  			} else if (evt.getPropertyName().equals("year")) {
  				c.set(Calendar.YEAR, ((Integer) evt.getNewValue()).intValue());
  				setCalendar(c, false);
  			} else if (evt.getPropertyName().equals("date")) {
  				c.setTime((Date) evt.getNewValue());
  				setCalendar(c, true);
  			}
  		}
  	}
docs: JCalendar is a PropertyChangeListener, for its day, month and year
  chooser.
  
  @param evt
  the property change event