As shown here, you can use an IDateEvaluator
like MinMaxDateEvaluator
to invalidate a range of dates:
private static class RangeEvaluator extends MinMaxDateEvaluator {
@Override
public boolean isInvalid(Date date) {
return !super.isInvalid(date);
}
}
Then you can specify a range of invalid dates, e.g. a day before and two weeks after:
Calendar min = Calendar.getInstance();
min.add(Calendar.DAY_OF_MONTH, -1);
Calendar max = Calendar.getInstance();
max.add(Calendar.DAY_OF_MONTH, 13);
RangeEvaluator re = new RangeEvaluator();
re.setMinSelectableDate(min.getTime());
re.setMaxSelectableDate(max.getTime());
JCalendar jc = new JCalendar();
jc.getDayChooser().addDateEvaluator(re);
jc.setCalendar(jc.getCalendar());
Note that you can add multiple instances of RangeEvaluator
to handle different ranges.