我正在尝试使用 IDateEvaluator 从 toedter 在 JCalendar 上绘制一组特定日期,但是......在将 DateEvaluator 添加到 DayChooser 之后没有任何反应。在这里的一篇文章中,我注意到我需要将我的 JCalendar 日历设置为自身,以便它可以更新......但由于我在 monthChooser 和 YearChooser 上有一些 PropertyChangeListeners 并且这是调用着色函数的侦听器,我无法将其设置为自身因为它只是不断地循环激活它们。这是我的代码:
monthChooser.addPropertyChangeListener("month", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {
if(e.getPropertyName().equals("month")){
JCalendar calendarAux = setNewMonth(monthChooser.getMonth(), yearChooser.getYear());
calendar.setCalendar(calendarAux.getCalendar());
}
}
});
yearChooser.addPropertyChangeListener("year", new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent e){
if(e.getPropertyName().equals("year")){
JCalendar calendarAux = setNewMonth(monthChooser.getMonth(), yearChooser.getYear());
calendar.setCalendar(calendarAux.getCalendar());
}
}
});
public JCalendar setNewMonth(int month, int year){
monthDate = calendarSearch.getMonth(month, year);
List<Date> datesList = getDates();
System.out.println("Hello, im here");
if(!datesList.isEmpty()){
for(Date date : datesList){
System.out.println(date + "Hello, im here too!");
}
HighlightEvaluator highlightEvaluator = new HighlightEvaluator(datesList);
calendar.getDayChooser().addDateEvaluator(highlightEvaluator);
lblNewLabel_1.setText(calendarSearch.getTotalMonthDistance(month, year));
}
return calendar;
}
HighlightEvaluator 实现 IDateEvaluator 只是 List(Date) 并且如果它在列表中,isSpecial 函数为 true。其余功能是特殊时的颜色。希望可以有人帮帮我!