2017-09-21 6 views

Répondre

-1

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

+0

"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. –

+0

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