JavaFX - Как изменить дату по умолчанию DatePicker при нажатии значка календаря? - PullRequest
0 голосов
/ 11 марта 2019

Я использую JFXDatePicker extends DatePicker и хочу изменить дату по умолчанию при нажатии значка календаря.

  • По умолчанию используется текущая дата, и я хочу изменить ее на определенную дату по коду (Это сэкономит немного времени при выборе даты в 195x для пример. Я отключаю редактируемый, поэтому не могу набрать текстовое поле) И я не хочу использовать .setvalue(), потому что он будет отображать эту дату, когда форма была названа.
  • Я использовал этот код, но не работал.

    birthday = new JFXDatePicker(LocalDate.of(1980, Month.MARCH, 11));

[http://i228.photobucket.com/albums/ee83/ThamVanTam/JFXDatePicker_zpscdgns2b6.png]

1 Ответ

0 голосов
/ 20 мая 2019

Вот мое решение, оно не идеально, но все же хорошо для моей проблемы:

        //Setting datepicker :
        birthday.setDayCellFactory(picker -> new DateCell() {
            @Override
            public void updateItem(LocalDate date, boolean empty) {
                super.updateItem(date, empty);
                //Setting date 18 years ago
                LocalDate today = LocalDate.ofYearDay(LocalDate.now().getYear() - 18, LocalDate.now().getDayOfYear());
                //Disable future date
                setDisable(empty || date.compareTo(today) > 0);
            }
        });
        //Setting actual value
        birthday.setValue(LocalDate.ofYearDay(LocalDate.now().getYear() - 18, LocalDate.now().getDayOfYear()));
        //Cover the value by text
        String pattern = "dd-MM-yyyy";
        formatCalender.format(pattern, birthday);
        birthday.getEditor().setText("Date Of Birth");
        birthday.setPromptText(null);            
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...