2010-11-11 1 views
8

Я хотел бы определить, когда дата изменяется в поле JDateChooser, чтобы я мог обновить другое поле.Можно ли определить изменение даты в поле JCalendar JDateChooser?

Возможно ли это? И если да, то где я должен начать? Я уже просмотрел документацию и, к сожалению, нет методов добавления чего-то вроде ActionListener или StateChangeListener (мои первые мысли).

ответ

20

com.toedter.calendar.JCalendar наследует listenerList от JComponent, и он реализует java.beans.PropertyChangeListener. Я бы добавил слушателя и посмотрел, что происходит.

Редактировать: Я думаю, вы можете использовать addPropertyChangeListener() так же, как JCalendar.

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

+1 «com.toedter.calendar.JDateChooser» - хороший пример этого. – trashgod

+0

@trashgod да извините, я использую JDateChooser. Я знаю, что у него есть метод actionPerformed, но я довольно ржавый с обработкой событий в Java! Я привык иметь метод addXListener. Как я могу связать общий приемник с этим методом? – ghickman

+0

@ghickman: пример подходит для текущей версии, 1.3.3; похоже, что опубликованный API - это 1.2.1. – trashgod

1

Я не пробовал, но addDateListener(DateListener listener) выглядит подходящим.

+0

Это выглядит хорошо, но, к сожалению, я не использую этот JCalendar (не думал, что может быть два!). Я использую toedter.com один: http://www.toedter.com/ru/jcalendar/api/index.html – ghickman

+0

@ghickman: Извините! Что такое 'JDatePicker'? – trashgod