JavaFX DatePicker - управление отображением дней предыдущего / следующего месяца - PullRequest
1 голос
/ 10 июня 2019

Я работаю с dayCellFactory для форматирования дисплея.Я реализовал отключение предыдущих дат, позволяя выбирать только понедельники и выделять период после выбора даты.

final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
        @Override
        public DateCell call(final DatePicker datePicker) {
            return new DateCell() {
                @Override
                public void updateItem(LocalDate item, boolean empty) {
                    super.updateItem(item, empty);
                    if (item.isBefore(LocalDate.now().minusWeeks(1).plusDays(1))) {
                        setDisable(true);
                        setStyle("-fx-background-color: #d3d3d3;");
                    }
                    else if (item.getDayOfWeek() != DayOfWeek.MONDAY) {
                        setDisable(true);
                    }
                    if (selectedDate != null) {
                        LocalDate startDate = selectedDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
                        if (item.isAfter(startDate) && item.isBefore(startDate.plusWeeks(weeksInPeriod))) {
                            setStyle("-fx-background-color: #ffc0cb;");
                        }
                    }
                }
            };
        }
    };

Единственное, что я не могу понять, - это как отображать даты только текущего месяца.в моем календаре (не текущий месяц, как в LocalDate.now (). getMonth (), текущий месяц, отображаемый во всплывающем окне DatePicker).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...