0
時間範囲Jan 2000 - Dec 2014
の日付ピッキングを有効にし、この範囲外の日付を無効にし、値(setValue()またはConstructor)を設定せずにこの範囲内の日付にDatePickerエディタを開くには、テキストボックスは空です。これはできますか?テキストボックスに値を設定せずに、JavaFXのDatePickerエディタを特定のカレンダーの日付に表示または開く方法を教えてください。
時間範囲Jan 2000 - Dec 2014
の日付ピッキングを有効にし、この範囲外の日付を無効にし、値(setValue()またはConstructor)を設定せずにこの範囲内の日付にDatePickerエディタを開くには、テキストボックスは空です。これはできますか?テキストボックスに値を設定せずに、JavaFXのDatePickerエディタを特定のカレンダーの日付に表示または開く方法を教えてください。
コンストラクタまたは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();
});
:カスタムDateCellFactory設定することができ、外部からの は、日付を無効にします。次に、この 'Platform.runLater() - > { picker.getEditor()。clear(); });を追加する必要がありました。これは、datePickerのshowingPropertyのaddListenerの中で、ユーザーが有効な日付を選択するまで、毎回datePickerのテキストフィールドをクリアしたかったのです。 – tbf