2016-10-19 9 views
0

時間範囲Jan 2000 - Dec 2014の日付ピッキングを有効にし、この範囲外の日付を無効にし、値(setValue()またはConstructor)を設定せずにこの範囲内の日付にDatePickerエディタを開くには、テキストボックスは空です。これはできますか?テキストボックスに値を設定せずに、JavaFXのDatePickerエディタを特定のカレンダーの日付に表示または開く方法を教えてください。

答えて

0

コンストラクタまたはsetValueで必要な日付を設定し、picker.getEditor().clear()でクリアテキストボックスを設定できます。これは私の質問に答える

LocalDate minDate = LocalDate.of(2000, Month.JANUARY, 1); 
    LocalDate maxDate = LocalDate.of(2014, Month.DECEMBER, 31); 
    DatePicker picker = new DatePicker(minDate.plusYears(2)); 
    picker.setDayCellFactory((p) -> new DateCell() { 
     @Override 
     public void updateItem(LocalDate ld, boolean bln) { 
      super.updateItem(ld, bln); 
      setDisable(ld.isBefore(minDate) || ld.isAfter(maxDate)); 
     } 
    }); 
    Platform.runLater(() -> { 
     picker.getEditor().clear(); 
    }); 
+0

:カスタムDateCellFactory設定することができ、外部からの は、日付を無効にします。次に、この 'Platform.runLater() - > { picker.getEditor()。clear(); });を追加する必要がありました。これは、datePickerのshowingPropertyのaddListenerの中で、ユーザーが有効な日付を選択するまで、毎回datePickerのテキストフィールドをクリアしたかったのです。 – tbf

関連する問題