JavaFX:setDisable(true)DatePicker问题

时间:2018-11-28 13:44:48

标签: javafx datepicker

我正在尝试从javafx(v10)中的日期选择器禁用某些日期,但是我不断遇到这样的问题,即向前和向后移动一个月时,有效日期似乎会更改css。这是一个已知的错误,还是任何人都可以发现代码错误?

private void getDayCellFactory(DatePicker datePicker1) {

    Callback<DatePicker, DateCell> dayCellFactory = (final DatePicker datePicker) -> new DateCell() {
        @Override
        public void updateItem(LocalDate item, boolean empty) {
            super.updateItem(item, empty);

            if (item.isAfter(LocalDate.now().plusDays(9))) {
                setDisable(true);
            }
            if (item.isBefore(ChronoLocalDate.from(LocalDate.now()))) {
                setDisable(true);
            }
        }
    };

    datePicker1.setDayCellFactory(dayCellFactory);
}

1 个答案:

答案 0 :(得分:0)

您必须在updateItem方法中处理空单元格。在updateItem方法中包括以下内容。在super.updateItem(item,empty);行下

if (empty || item == null) {
        setGraphic(null);
    }
else { //your code }