点击一天后如何从JCalendar获取日期?

时间:2013-12-03 17:30:40

标签: java actionlistener jcalendar

我如何向jcalendar添加动作侦听器?我想在一天中点击时获取日期,所以我将在jtextfield上显示整个日期。 我尝试过类似的东西,但是当我点击一天时它什么也没做。

    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 个答案:

答案 0 :(得分:1)

我认为您正在将属性更改侦听器添加到错误的bean中。我检查了JCalendar代码,getDayPanel()方法只返回一个我认为不知道你感兴趣的“day”属性的常规JPanel。

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

我认为您应该将属性更改侦听器添加到daychooser本身,这是知道“day”属性的类。此外,您可能希望注册当天选择器的“日期”属性:

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

    }
});

但是,这只会给你用户选择的那一天,而不是整个日期。