1 回答
TA贡献1862条经验 获得超7个赞
配置范围仅意味着禁用此范围之外的日期。所以这个过程与链接答案中的过程相同。您可以创建一个实用方法来更轻松地创建过滤器。例如,如果谓词返回 false,则configureShowRangeHandler承认Predicate<Date>将禁用日期。这enableUntilToday是一个将可选日期限制到今天的简单示例。
{
DatePicker dp = new DatePicker();
Predicate<Date> enableUntilTodayDates = d -> !d.after(new Date());
configureShowRangeHandler(dp, enableUntilTodayDates);
}
static HandlerRegistration configureShowRangeHandler(DatePicker dp, Predicate<Date> fn) {
return dp.addShowRangeHandler(ev -> {
for (Date t = copyDate(ev.getStart()); t.before(ev.getEnd()); addDaysToDate(t, 1)) {
dp.setTransientEnabledOnDates(fn.test(t), t);
}
});
}
copyDate并且addDaysToDate是从静态导入的CalendarUtil
添加回答
举报