Le code ci-dessous permet de restreindre DatePicker pour Date Rage de Jan2000 à tillDate.
restrictDatePicker (datePicker, LocalDate.of (2000, Month.JANUARY, 1), LocalDate.now());
Nous pouvons changer la valeur min et max date selon les besoins.
public void restrictDatePicker(DatePicker datePicker, LocalDate minDate, LocalDate maxDate) {
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(minDate)) {
setDisable(true);
setStyle("-fx-background-color: #ffc0cb;");
}else if (item.isAfter(maxDate)) {
setDisable(true);
setStyle("-fx-background-color: #ffc0cb;");
}
}
};
}
};
datePicker.setDayCellFactory(dayCellFactory);
}
Référez-lien: https://docs.oracle.com/javase/8/javafx/user-interface-tutorial/date-picker.htm#CCHEBIFF
"Code-seulement" les réponses sont découragés sur ce site; vous devriez expliquer comment cela fonctionne, ainsi que comment l'utiliser. Vous devriez également expliquer le contexte: il n'est pas du tout évident ici que 'checkInDatePicker' est un sélecteur de date * différent * de celui sur lequel cette fabrique de cellules est appliquée. Enfin, comme ce code provient d'un autre site (https://docs.oracle.com/javase/9/docs/api/javafx/scene/layout/BorderPane.html), vous devez le reconnaître et le lier: faire est au moins extrêmement impoli; au pire, cela pourrait vous exposer à des conséquences juridiques. –
Merci pour votre commentaire et suggestion, puisque ceci est mon premier post, je ne suis pas clair de tous les détails à mentionner. Selon vos conseils, j'ai mis à jour la réponse. – Prashant