JavaFX:setDisable(true)DatePicker问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX:setDisable(true)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);
}
答案

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

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

以上是关于JavaFX:setDisable(true)DatePicker问题的主要内容,如果未能解决你的问题,请参考以下文章

当 Java 中有 Thread.sleep 时,计时器不会停止

javafx 调整 setMnemonicParsing(true) alt 键

JavaFX/Mac:当我将 useSystemMenuBar 设置为 true 时,系统菜单变得无响应

setWrapText(true)不适用于JavaFX中的Label

使用 gradlew 将 JavaFX 转换为 Android

javafx编程问题