我正在尝试使用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),如果isApecial函数在列表中,则为true。其余功能是特殊时的颜色。 希望有人可以帮助我!