如何将 show/open JavaFX DatePicker 编辑器设置为特定的日历日期而不在其文本框中设置任何值?

How to show/open JavaFX DatePicker editor to a specific calendar date without setting any value in its textbox?

我希望启用时间范围内的日期选择 Jan 2000 - Dec 2014 并禁用此范围外的日期,并希望在不设置值(setValue() 或构造函数)的情况下打开 DatePicker 编辑器到此范围内的日期到它,因为我希望文本框为空。这能做到吗?

您可以通过构造函数或 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();
    });