JavaFX:setDisable(true)DatePicker问题

问题描述 投票:1回答:1

我试图在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);
}
javafx datepicker
1个回答
0
投票

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

if (empty || item == null) {
        setGraphic(null);
    }
else { //your code }
© www.soinside.com 2019 - 2024. All rights reserved.