Вопрос:

как отключить прошлые даты в DatePicker из javaFx (конструктор сцены)

javafx datepicker

1801 просмотра

2 ответа

6 Репутация автора

Я создал на сцене конструктор DatePicker. Я хочу отключить даты, чтобы заставить пользователя выбирать даты текущего дня, но я не знаю, как это сделать. Все примеры, которые я видел, были не в Java (и, конечно, мой проект в Java).

Автор: חיים חדד Источник Размещён: 13.01.2018 10:10

Ответы (2)


2 плюса

101 Репутация автора

Я была такая же проблема. Вот кусок кода, который работал для меня.

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 () (который возвращает дату текущего дня) меньше, поэтому предыдущие дни.

Автор: BP-21 Размещён: 28.03.2018 07:56

0 плюса

1 Репутация автора

        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);

отключить прошедшие даты в окне выбора даты

Автор: Jayani Размещён: 08.05.2019 03:21
Вопросы из категории :
32x32