在JCalendar中禁用过去的日期和从现在起2周 [英] Disable past dates and 2 weeks from now in JCalendar
本文介绍了在JCalendar中禁用过去的日期和从现在起2周的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从JCalendar
禁用过去的日期和从现在起2周.
I want to disable past dates and 2 weeks from now from a JCalendar
.
我已经有了以下代码:
jDateChooser1.getJCalendar().setMinSelectableDate(new Date());
((JTextFieldDateEditor)jDateChooser1.getDateEditor()).setEditable(false);
我已经可以禁用过去的日期,但是如何禁用从现在起2周之类的将来的日期呢?
I already can disable past dates but how about disabling future dates like 2 weeks from now?
推荐答案
如此处所示,您可以使用IDateEvaluator
(例如MinMaxDateEvaluator
)会使日期范围无效:
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());
请注意,您可以添加RangeEvaluator
的多个实例以处理不同的范围.
Note that you can add multiple instances of RangeEvaluator
to handle different ranges.
这篇关于在JCalendar中禁用过去的日期和从现在起2周的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文