如何在javaFx的DatePicker中禁用过去的日期(场景构建器)

时间:2018-01-13 10:10:49

标签: javafx datepicker

我在场景构建器上创建了一个DatePicker。我想让它禁用日期,以强制用户从当天选择日期,但我不知道该怎么做。我看到的所有例子都不在java中(当然我的项目是在java中)。

2 个答案:

答案 0 :(得分:2)

我有同样的问题。这是为我工作的代码段。

DatePicker dp = new DatePicker();
dp.setDayCellFactory(picker -> new DateCell() {
        public void updateItem(LocalDate date, boolean empty) {
            super.updateItem(date, empty);
            LocalDate today = LocalDate.now();

            setDisable(empty || date.compareTo(today) < 0 );
        }
    });

与LocalDate.now()(返回当前日期日期)相比,这将使那些日子变得不可靠,所以前几天也是如此。

答案 1 :(得分:0)

        Callback<DatePicker, DateCell> callB = new Callback<DatePicker, DateCell>() {
            @Override
            public DateCell call(final DatePicker param) {
                return new DateCell() {
                    @Override
                    public void updateItem(LocalDate item, boolean empty) {
                        super.updateItem(item, empty); //To change body of generated methods, choose Tools | Templates.
                        LocalDate today = LocalDate.now();
                        setDisable(empty || item.compareTo(today) < 0);
                    }

                };
            }

        };
        selectedDate.setDayCellFactory(callB);

在日期选择器中禁用过去的日期