2013-12-03 2 views
0

Как бы я добавил слушателя действий в jcalendar? Я хочу получить дату, когда вы нажимаете в течение дня, поэтому я покажу всю дату на jtextfield. Я пробовал что-то вроде этого, но ничего не делает, когда нажимаю день.Как получить дату из JCalendar, когда вы нажимаете на день?

cal = new JCalendar(); 
    cal.setWeekOfYearVisible(false); 
    cal.getDayChooser().getDayPanel().addPropertyChangeListener(new PropertyChangeListener() { 

     @Override 
     public void propertyChange(PropertyChangeEvent e) { 
      System.out.println(e.getPropertyName() 
        + ": " + (Date) e.getNewValue()); 

     } 
    }); 

Я также пробовал код ответа на этот вопрос, похожий, но ничего. Adding actionListener to jCalendar

ответ

1

Я думаю, что вы добавляете слушателя изменений свойств в неправильный компонент. Я проверил код JCalendar и метод getDayPanel() возвращает только регулярные JPanel, что я не думаю, что знает о недвижимости «день» вы заинтересованы.

/** 
* Returns the day panel. 
* 
* @return the day panel 
*/ 
public JPanel getDayPanel() { 
    return dayPanel; 
} 

Я думаю, вы должны добавить изменения слушателя свойств к самому daychooser, который является классом, который знает о свойстве «день». Кроме того, вы можете зарегистрироваться для участия в собственности «день» в день 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()); 

    } 
}); 

Тем не менее, это только даст вам день, что пользователь определена, а не весь срок.

+0

спасибо! он работал, я просто немного изменился, вместо этого использовал e.getnewvalue(); Я использовал cal.getDate.toString(), поэтому я могу показать всю дату. – thefuentescore

Смежные вопросы