I want to disable multiple date ranges on a JCalendar. I\'m following these steps, but I need to know how can I add multiple date evaluators. Help me please, thanks.
Just call addDateEvaluator()
for each RangeEvaluator
that you create. This adds the RangeEvaluator
to a List dateEvaluators
inside JDayChooser
. Later, JDayChooser
iterates over the list when it decides how to draw the day buttons.
Edit: Here's the RangeEvaluator
I used.
private static class RangeEvaluator extends MinMaxDateEvaluator {
@Override
public boolean isInvalid(Date date) {
return !super.isInvalid(date);
}
}
And here's how I used it.
RangeEvaluator re = new RangeEvaluator();
re.setMinSelectableDate(...);
re.setMaxSelectableDate(...);
JCalendar jc = new JCalendar();
jc.getDayChooser().addDateEvaluator(re);
One problem I noticed is that you have to tell the JDayChooser
to reconfigure its buttons using the new evaluator. You can fire a property change event or just change a bound property.
jc.setCalendar(jc.getCalendar());