2017-09-21 22 views
1

날짜 범위 제한을 datePicker JavaFX 8로 설정하는 방법을 아는 사람이 있습니까?날짜 범위를 datePicker JavaFX 8로 제한

예를 들어 나는 단지 실제의 달 (9 월)에 대한

enter image description here

미리 감사를이 날짜 선택기를 제한하고 싶습니다.

감사합니다.

답변

-1

아래의 코드는 DatePicker의 Date Rage를 Jan2000에서 tillDate로 제한하는 코드입니다.

restrictDatePicker (datePicker, LocalDate.of (2000, Month.JANUARY, 1), LocalDate.now());

요구 사항에 따라 최소 및 최대 날짜 값을 변경할 수 있습니다.

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

참조 링크 : https://docs.oracle.com/javase/8/javafx/user-interface-tutorial/date-picker.htm#CCHEBIFF

+0

"코드 전용"답변은이 사이트에 권장되지 않습니다; 어떻게 사용하는지뿐만 아니라 어떻게 작동하는지 설명해야합니다. 또한 컨텍스트를 설명해야합니다. 즉, checkInDatePicker는이 셀 팩터가 적용된 날짜 선택기와 다른 * 날짜 선택기입니다. 마지막으로이 코드는 [다른 사이트] (https://docs.oracle.com/javase/9/docs/api/javafx/scene/layout/BorderPane.html)에서 가져온 것이므로 다음을 인정하고 연결해야합니다. failure to 그렇게하는 것이 가장 무례한 일이다. 최악의 경우 귀하를 법적 결과에 노출시킬 수 있습니다. –

+0

내 첫 번째 게시물이기 때문에 귀하의 검토와 제안을 해주셔서 감사합니다. 나는 언급 할 세부 사항을 모두 분명히 밝히지 않았습니다. 귀하의 지침에 따라 답변을 업데이트했습니다. – Prashant