我希望为时间范围Jan 2000 - Dec 2014
启用日期选择,并禁用此范围之外的日期,并希望将DatePicker编辑器打开到此范围内的日期,而不设置值(setValue()或Constructor) ,因为我希望文本框为空。可以这样做吗?
答案 0 :(得分:0)
您可以通过构造函数或setValue设置所需日期,并使用picker.getEditor().clear()
清除文本框。
要从外部禁用日期,您可以设置自定义DateCellFactory:
LocalDate minDate = LocalDate.of(2000, Month.JANUARY, 1);
LocalDate maxDate = LocalDate.of(2014, Month.DECEMBER, 31);
DatePicker picker = new DatePicker(minDate.plusYears(2));
picker.setDayCellFactory((p) -> new DateCell() {
@Override
public void updateItem(LocalDate ld, boolean bln) {
super.updateItem(ld, bln);
setDisable(ld.isBefore(minDate) || ld.isAfter(maxDate));
}
});
Platform.runLater(() -> {
picker.getEditor().clear();
});