我如何向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
答案 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());
}
});
但是,这只会给你用户选择的那一天,而不是整个日期。