ここに示すように、 IDateEvaluator
likeを使用してMinMaxDateEvaluator
日付の範囲を無効にすることができます。
private static class RangeEvaluator extends MinMaxDateEvaluator {
@Override
public boolean isInvalid(Date date) {
return !super.isInvalid(date);
}
}
次に、無効な日付の範囲を指定できます。たとえば、前日と 2 週間後です。
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());
RangeEvaluator
の複数のインスタンスを追加して、異なる範囲を処理できることに注意してください。