Spec-Zone.ru › OpenJavaFX 24

Класс DatePicker

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.ComboBoxBase<LocalDate>
javafx.scene.control.DatePicker
Все реализованные интерфейсы:
Styleable, EventTarget, Skinnable
public class DatePicker extends ComboBoxBase<LocalDate>
Элемент управления DatePicker позволяет пользователю вводить дату в виде текста или выбирать дату из всплывающего календаря. Календарь основан на стандартной хронологии ISO-8601 или любой другой хронологии, определённой в пакете java.time.chrono.

Свойство value представляет текуще выбранную LocalDate. Начальную дату можно установить с помощью constructor или вызвав setValue(LocalDate). Значение по умолчанию — null.

 DatePicker datePicker = new DatePicker();
 datePicker.setOnAction(e -> {
     LocalDate date = datePicker.getValue();
     System.err.println("Selected date: " + date);
 });
Image of the DatePicker control

Свойство chronology указывает используемую систему календаря для анализа, отображения и выбора дат. Свойство value всегда определяется в системе календаря ISO, но приложения, основанные на другой хронологии, могут использовать методы преобразования, предоставленные в API Chronology, чтобы получить или установить соответствующее значение ChronoLocalDate. Например:

LocalDate isoDate = datePicker.getValue();
 ChronoLocalDate chronoDate =
     ((isoDate != null) ? datePicker.getChronology().date(isoDate) : null);
 System.err.println("Selected date: " + chronoDate);
С момента:
JavaFX 8.0

Краткое описание свойств

Тип Свойство Описание
final ObjectProperty<Chronology> chronology
Система календаря, используемая для разбора, отображения и выбора дат в элементе управления DatePicker.
final ObjectProperty<StringConverter<LocalDate>> converter
Преобразует введённый текст в объект типа LocalDate и наоборот.
final ObjectProperty<Callback<DatePicker,DateCell>> dayCellFactory
Можно предоставить пользовательскую фабрику ячеек для настройки отдельных дней в всплывающем окне DatePicker.
final ReadOnlyObjectProperty<TextField> editor
Редактор для элемента управления DatePicker.
final BooleanProperty showWeekNumbers
Определяет, должен ли всплывающее окно DatePicker отображать столбец с номерами недель.

Свойства, объявленные в классе javafx.scene.control.ComboBoxBase

armed, editable, onAction, onHidden, onHiding, onShowing, onShown, promptText, showing, value

Свойства, объявленные в классе javafx.scene.control.Control

contextMenu, skin, tooltip

Свойства, объявленные в классе javafx.scene.layout.Region

background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width

Свойства, объявленные в классе javafx.scene.Parent

needsLayout

Свойства, объявленные в классе javafx.scene.Node

accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible

Краткое описание полей

Поля, объявленные в классе javafx.scene.control.ComboBoxBase

ON_HIDDEN, ON_HIDING, ON_SHOWING, ON_SHOWN

Поля, объявленные в классе javafx.scene.layout.Region

USE_COMPUTED_SIZE, USE_PREF_SIZE

Поля, объявленные в классе javafx.scene.Node

BASELINE_OFFSET_SAME_AS_HEIGHT

Краткое описание конструкторов

Конструктор Описание
DatePicker()
Создаёт экземпляр DatePicker по умолчанию с установленным значением даты null.
DatePicker(LocalDate localDate)
Создаёт экземпляр DatePicker и устанавливает value на заданную дату.

Краткое описание методов

Модификатор и тип Метод Описание
final void cancelEdit()
Если DatePicker является editable, вызов этого метода попытается заменить текст редактора последним сохранённым значением value.
final ObjectProperty<Chronology> chronologyProperty()
Система календаря, используемая для разбора, отображения и выбора дат в элементе управления DatePicker.
final void commitValue()
Если DatePicker является editable, вызов этого метода попытается сохранить текущий текст и преобразовать его в значение value.
final ObjectProperty<StringConverter<LocalDate>> converterProperty()
Преобразует введённый текст в объект типа LocalDate и наоборот.
final ObjectProperty<Callback<DatePicker,DateCell>> dayCellFactoryProperty()
Пользовательская фабрика ячеек может быть предоставлена для настройки отдельных дней в всплывающем окне DatePicker.
final ReadOnlyObjectProperty<TextField> editorProperty()
Редактор для элемента управления DatePicker.
final Chronology getChronology()
Получает значение свойства chronology.
static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
Получает CssMetaData, связанное с этим классом, что может включать CssMetaData его суперклассов.
List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
Получает список свойств, доступных для стилизации в CSS.
final StringConverter<LocalDate> getConverter()
Получает значение свойства converter.
final Callback<DatePicker,DateCell> getDayCellFactory()
Получает значение свойства dayCellFactory.
final TextField getEditor()
Получает значение свойства editor.
final boolean isShowWeekNumbers()
Получает значение свойства showWeekNumbers.
final void setChronology(Chronology value)
Устанавливает значение свойства chronology.
final void setConverter(StringConverter<LocalDate> value)
Устанавливает значение свойства converter.
final void setDayCellFactory(Callback<DatePicker,DateCell> value)
Устанавливает значение свойства dayCellFactory.
final void setShowWeekNumbers(boolean value)
Устанавливает значение свойства showWeekNumbers.
final BooleanProperty showWeekNumbersProperty()
Определяет, должен ли всплывающее окно DatePicker отображать столбец с номерами недель.

Методы, объявленные в классе javafx.scene.control.ComboBoxBase

arm, armedProperty, disarm, editableProperty, getOnAction, getOnHidden, getOnHiding, getOnShowing, getOnShown, getPromptText, getValue, hide, isArmed, isEditable, isShowing, onActionProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, promptTextProperty, setEditable, setOnAction, setOnHidden, setOnHiding, setOnShowing, setOnShown, setPromptText, setValue, show, showingProperty, valueProperty

Методы, объявленные в классе javafx.scene.control.Control

computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty

Методы, объявленные в классе javafx.scene.layout.Region

backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computePrefHeight, computePrefWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty

Методы, объявленные в классе javafx.scene.Parent

getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds

Методы, объявленные в классе javafx.scene.Node

accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе javafx.css.Styleable

getStyleableNode

Сведения о свойствах

dayCellFactory

public final ObjectProperty<Callback<DatePicker,DateCell>> dayCellFactoryProperty
Можно указать пользовательскую фабрику ячеек для настройки отдельных ячеек дней в всплывающем окне DatePicker. Дополнительную информацию о фабриках ячеек см. в DateCell и Cell. Пример:

 final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
     public DateCell call(final DatePicker datePicker) {
         return new DateCell() {
             @Override public void updateItem(LocalDate item, boolean empty) {
                 super.updateItem(item, empty);

                 if (MonthDay.from(item).equals(MonthDay.of(9, 25))) {
                     setTooltip(new Tooltip("Happy Birthday!"));
                     setStyle("-fx-background-color: #ff4444;");
                 }
                 if (item.equals(LocalDate.now().plusDays(1))) {
                     // Tomorrow is too soon.
                     setDisable(true);
                 }
             }
         };
     }
 };
 datePicker.setDayCellFactory(dayCellFactory);
 
Значение по умолчанию:
null
См. также:
  • getDayCellFactory()
  • setDayCellFactory(Callback)
  • dayCellFactoryProperty()

chronology

public final ObjectProperty<Chronology> chronologyProperty
Система календаря, используемая для анализа, отображения и выбора дат в элементе управления DatePicker.

Значение по умолчанию возвращается из вызова Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). По умолчанию обычно используется IsoChronology, если явно не указано в Locale с помощью расширения календаря Locale. Установка значения в null восстановит календарь по умолчанию.

См. также:
  • getChronology()
  • setChronology(Chronology)
  • chronologyProperty()

showWeekNumbers

public final BooleanProperty showWeekNumbersProperty
Определяет, должен ли всплывающий элемент управления DatePicker отображать столбец с номерами недель.

Значение по умолчанию задается в файле ресурсов и зависит от страны текущего языка.

См. также:
  • isShowWeekNumbers()
  • setShowWeekNumbers(boolean)
  • showWeekNumbersProperty()

converter

public final ObjectProperty<StringConverter<LocalDate>> converterProperty
Преобразует входной текст в объект типа LocalDate и обратно.

Если не задано приложением, класс DatePicker skin установит преобразователь, основанный на DateTimeFormatter для текущего Locale и chronology. Этот форматер используется для анализа и отображения текущего значения даты. Установка значения в null восстановит преобразователь по умолчанию.

Пример с явным форматером:


 datePicker.setConverter(new StringConverter<LocalDate>() {
     String pattern = "yyyy-MM-dd";
     DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(pattern);

     {
         datePicker.setPromptText(pattern.toLowerCase());
     }

     @Override public String toString(LocalDate date) {
         if (date != null) {
             return dateFormatter.format(date);
         } else {
             return "";
         }
     }

     @Override public LocalDate fromString(String string) {
         if (string != null && !string.isEmpty()) {
             return LocalDate.parse(string, dateFormatter);
         } else {
             return null;
         }
     }
 });
 

Пример, который оборачивает форматер по умолчанию и обрабатывает исключения при анализе:


   final StringConverter<LocalDate> defaultConverter = datePicker.getConverter();
   datePicker.setConverter(new StringConverter<LocalDate>() {
       @Override public String toString(LocalDate value) {
           return defaultConverter.toString(value);
       }

       @Override public LocalDate fromString(String text) {
           try {
               return defaultConverter.fromString(text);
           } catch (DateTimeParseException ex) {
               System.err.println("HelloDatePicker: "+ex.getMessage());
               throw ex;
           }
       }
   });
 

Базовый год по умолчанию для анализа ввода, содержащего только две цифры для года, составляет 2000 (см. DateTimeFormatter). Это значение по умолчанию не подходит для ввода даты рождения. Следующий пример изменяет метод fromString() преобразователя, чтобы разрешить ввод года с двумя цифрами для дат рождения до 99 лет назад.


   @Override public LocalDate fromString(String text) {
       if (text != null && !text.isEmpty()) {
           Locale locale = Locale.getDefault(Locale.Category.FORMAT);
           Chronology chrono = datePicker.getChronology();
           String pattern =
               DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle.SHORT,
                                                                    null, chrono, locale);
           String prePattern = pattern.substring(0, pattern.indexOf("y"));
           String postPattern = pattern.substring(pattern.lastIndexOf("y")+1);
           int baseYear = LocalDate.now().getYear() - 99;
           DateTimeFormatter df = new DateTimeFormatterBuilder()
                       .parseLenient()
                       .appendPattern(prePattern)
                       .appendValueReduced(ChronoField.YEAR, 2, 2, baseYear)
                       .appendPattern(postPattern)
                       .toFormatter();
           return LocalDate.from(chrono.date(df.parse(text)));
       } else {
           return null;
       }
   }
 
См. также:
  • getConverter()
  • setConverter(StringConverter)
  • converterProperty()

editor

public final ReadOnlyObjectProperty<TextField> editorProperty
Редактор для DatePicker.
См. также:
  • getEditor()
  • editorProperty()

Подробности конструкторов

DatePicker

public DatePicker()
Создаёт экземпляр DatePicker по умолчанию с установленным значением даты null.

DatePicker

public DatePicker(LocalDate localDate)
Создаёт экземпляр DatePicker и устанавливает value на заданную дату.
Параметры:
localDate - дата, которая будет установлена в качестве текущей выбранной даты в DatePicker. Может быть null.

Подробности методов

setDayCellFactory

public final void setDayCellFactory(Callback<DatePicker,DateCell> value)
Устанавливает значение свойства dayCellFactory.
Описание свойства:
Можно указать пользовательскую фабрику ячеек для настройки отдельных ячеек дней в всплывающем окне DatePicker. Дополнительную информацию о фабриках ячеек см. в DateCell и Cell. Пример:

 final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
     public DateCell call(final DatePicker datePicker) {
         return new DateCell() {
             @Override public void updateItem(LocalDate item, boolean empty) {
                 super.updateItem(item, empty);

                 if (MonthDay.from(item).equals(MonthDay.of(9, 25))) {
                     setTooltip(new Tooltip("Happy Birthday!"));
                     setStyle("-fx-background-color: #ff4444;");
                 }
                 if (item.equals(LocalDate.now().plusDays(1))) {
                     // Tomorrow is too soon.
                     setDisable(true);
                 }
             }
         };
     }
 };
 datePicker.setDayCellFactory(dayCellFactory);
 
Значение по умолчанию:
null
Параметры:
value - значение для свойства dayCellFactory
См. также:
  • getDayCellFactory()
  • dayCellFactoryProperty()

getDayCellFactory

public final Callback<DatePicker,DateCell> getDayCellFactory()
Возвращает значение свойства dayCellFactory.
Описание свойства:
Можно указать пользовательскую фабрику ячеек для настройки отдельных ячеек дней в всплывающем окне DatePicker. Дополнительную информацию о фабриках ячеек см. в DateCell и Cell. Пример:

 final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
     public DateCell call(final DatePicker datePicker) {
         return new DateCell() {
             @Override public void updateItem(LocalDate item, boolean empty) {
                 super.updateItem(item, empty);

                 if (MonthDay.from(item).equals(MonthDay.of(9, 25))) {
                     setTooltip(new Tooltip("Happy Birthday!"));
                     setStyle("-fx-background-color: #ff4444;");
                 }
                 if (item.equals(LocalDate.now().plusDays(1))) {
                     // Tomorrow is too soon.
                     setDisable(true);
                 }
             }
         };
     }
 };
 datePicker.setDayCellFactory(dayCellFactory);
 
Значение по умолчанию:
null
Возвращает:
значение свойства dayCellFactory
См. также:
  • setDayCellFactory(Callback)
  • dayCellFactoryProperty()

dayCellFactoryProperty

public final ObjectProperty<Callback<DatePicker,DateCell>> dayCellFactoryProperty()
Можно указать пользовательскую фабрику ячеек для настройки отдельных ячеек дней в всплывающем окне DatePicker. Дополнительную информацию о фабриках ячеек см. в DateCell и Cell. Пример:

 final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
     public DateCell call(final DatePicker datePicker) {
         return new DateCell() {
             @Override public void updateItem(LocalDate item, boolean empty) {
                 super.updateItem(item, empty);

                 if (MonthDay.from(item).equals(MonthDay.of(9, 25))) {
                     setTooltip(new Tooltip("Happy Birthday!"));
                     setStyle("-fx-background-color: #ff4444;");
                 }
                 if (item.equals(LocalDate.now().plusDays(1))) {
                     // Tomorrow is too soon.
                     setDisable(true);
                 }
             }
         };
     }
 };
 datePicker.setDayCellFactory(dayCellFactory);
 
Значение по умолчанию:
null
Возвращает:
свойство dayCellFactory
См. также:
  • getDayCellFactory()
  • setDayCellFactory(Callback)

chronologyProperty

public final ObjectProperty<Chronology> chronologyProperty()
Система календаря, используемая для анализа, отображения и выбора дат в элементе управления DatePicker.

Значение по умолчанию возвращается из вызова Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). По умолчанию обычно используется IsoChronology, если явно не указано в Locale с помощью расширения календаря Locale. Установка значения в null восстановит календарь по умолчанию.

Возвращает:
свойство, представляющее используемый календарь
См. также:
  • getChronology()
  • setChronology(Chronology)

getChronology

public final Chronology getChronology()
Возвращает значение свойства chronology.
Описание свойства:
Система календаря, используемая для анализа, отображения и выбора дат в элементе управления DatePicker.

Значение по умолчанию возвращается из вызова Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). По умолчанию обычно используется IsoChronology, если явно не указано в Locale с помощью расширения календаря Locale. Установка значения в null восстановит календарь по умолчанию.

Возвращает:
значение свойства chronology
См. также:
  • setChronology(Chronology)
  • chronologyProperty()

setChronology

public final void setChronology(Chronology value)
Устанавливает значение свойства chronology.
Описание свойства:
Система календаря, используемая для парсинга, отображения и выбора дат в элементе управления DatePicker.

Значение по умолчанию возвращается из вызова Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). Значение по умолчанию обычно IsoChronology, если явно не задано в Locale с помощью расширения календаря Locale. Установка значения в null восстановит хронологию по умолчанию.

Параметры:
value - значение для свойства chronology
См. также:
  • getChronology()
  • chronologyProperty()

showWeekNumbersProperty

public final BooleanProperty showWeekNumbersProperty()
Определяет, должен ли всплывающее окно DatePicker отображать столбец с номерами недель.

Значение по умолчанию указано в ресурсном файле и зависит от страны текущего языка.

Возвращает:
true, если всплывающее окно должно отображать столбец с номерами недель
См. также:
  • isShowWeekNumbers()
  • setShowWeekNumbers(boolean)

setShowWeekNumbers

public final void setShowWeekNumbers(boolean value)
Устанавливает значение свойства showWeekNumbers.
Описание свойства:
Определяет, должен ли всплывающее окно DatePicker отображать столбец с номерами недель.

Значение по умолчанию указано в ресурсном файле и зависит от страны текущего языка.

Параметры:
value - значение для свойства showWeekNumbers
См. также:
  • isShowWeekNumbers()
  • showWeekNumbersProperty()

isShowWeekNumbers

public final boolean isShowWeekNumbers()
Получает значение свойства showWeekNumbers.
Описание свойства:
Определяет, должен ли всплывающее окно DatePicker отображать столбец с номерами недель.

Значение по умолчанию указано в ресурсном файле и зависит от страны текущего языка.

Возвращает:
значение свойства showWeekNumbers
См. также:
  • setShowWeekNumbers(boolean)
  • showWeekNumbersProperty()

converterProperty

public final ObjectProperty<StringConverter<LocalDate>> converterProperty()
Преобразует входной текст в объект типа LocalDate и обратно.

Если приложение не задает, класс DatePicker skin установит преобразователь на основе DateTimeFormatter для текущего Locale и chronology. Этот форматер используется для парсинга и отображения текущего значения даты. Установка значения в null восстановит преобразователь по умолчанию.

Пример с явным форматером:


 datePicker.setConverter(new StringConverter<LocalDate>() {
     String pattern = "yyyy-MM-dd";
     DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(pattern);

     {
         datePicker.setPromptText(pattern.toLowerCase());
     }

     @Override public String toString(LocalDate date) {
         if (date != null) {
             return dateFormatter.format(date);
         } else {
             return "";
         }
     }

     @Override public LocalDate fromString(String string) {
         if (string != null && !string.isEmpty()) {
             return LocalDate.parse(string, dateFormatter);
         } else {
             return null;
         }
     }
 });
 

Пример, который оборачивает форматер по умолчанию и перехватывает исключения парсинга:


   final StringConverter<LocalDate> defaultConverter = datePicker.getConverter();
   datePicker.setConverter(new StringConverter<LocalDate>() {
       @Override public String toString(LocalDate value) {
           return defaultConverter.toString(value);
       }

       @Override public LocalDate fromString(String text) {
           try {
               return defaultConverter.fromString(text);
           } catch (DateTimeParseException ex) {
               System.err.println("HelloDatePicker: "+ex.getMessage());
               throw ex;
           }
       }
   });
 

Базовый год по умолчанию для парсинга входных данных, содержащих только две цифры для года, равен 2000 (см. DateTimeFormatter). Это значение по умолчанию не подходит для ввода даты рождения. Следующий пример изменяет метод fromString() преобразователя, чтобы позволить ввод двухзначного года для дат рождения до 99 лет в прошлом.


   @Override public LocalDate fromString(String text) {
       if (text != null && !text.isEmpty()) {
           Locale locale = Locale.getDefault(Locale.Category.FORMAT);
           Chronology chrono = datePicker.getChronology();
           String pattern =
               DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle.SHORT,
                                                                    null, chrono, locale);
           String prePattern = pattern.substring(0, pattern.indexOf("y"));
           String postPattern = pattern.substring(pattern.lastIndexOf("y")+1);
           int baseYear = LocalDate.now().getYear() - 99;
           DateTimeFormatter df = new DateTimeFormatterBuilder()
                       .parseLenient()
                       .appendPattern(prePattern)
                       .appendValueReduced(ChronoField.YEAR, 2, 2, baseYear)
                       .appendPattern(postPattern)
                       .toFormatter();
           return LocalDate.from(chrono.date(df.parse(text)));
       } else {
           return null;
       }
   }
 
Возвращает:
свойство, представляющее текущий преобразователь строк LocalDate
См. также:
  • getConverter()
  • setConverter(StringConverter)

setConverter

public final void setConverter(StringConverter<LocalDate> value)
Устанавливает значение свойства converter.
Описание свойства:
Преобразует входной текст в объект типа LocalDate и обратно.

Если приложение не задает, класс DatePicker skin установит преобразователь на основе DateTimeFormatter для текущего Locale и chronology. Этот форматер используется для парсинга и отображения текущего значения даты. Установка значения в null восстановит преобразователь по умолчанию.

Пример с явным форматером:


 datePicker.setConverter(new StringConverter<LocalDate>() {
     String pattern = "yyyy-MM-dd";
     DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(pattern);

     {
         datePicker.setPromptText(pattern.toLowerCase());
     }

     @Override public String toString(LocalDate date) {
         if (date != null) {
             return dateFormatter.format(date);
         } else {
             return "";
         }
     }

     @Override public LocalDate fromString(String string) {
         if (string != null && !string.isEmpty()) {
             return LocalDate.parse(string, dateFormatter);
         } else {
             return null;
         }
     }
 });
 

Пример, который оборачивает форматер по умолчанию и перехватывает исключения парсинга:


   final StringConverter<LocalDate> defaultConverter = datePicker.getConverter();
   datePicker.setConverter(new StringConverter<LocalDate>() {
       @Override public String toString(LocalDate value) {
           return defaultConverter.toString(value);
       }

       @Override public LocalDate fromString(String text) {
           try {
               return defaultConverter.fromString(text);
           } catch (DateTimeParseException ex) {
               System.err.println("HelloDatePicker: "+ex.getMessage());
               throw ex;
           }
       }
   });
 

Базовый год по умолчанию для парсинга входных данных, содержащих только две цифры для года, равен 2000 (см. DateTimeFormatter). Это значение по умолчанию не подходит для ввода даты рождения. Следующий пример изменяет метод fromString() преобразователя, чтобы позволить ввод двухзначного года для дат рождения до 99 лет в прошлом.


   @Override public LocalDate fromString(String text) {
       if (text != null && !text.isEmpty()) {
           Locale locale = Locale.getDefault(Locale.Category.FORMAT);
           Chronology chrono = datePicker.getChronology();
           String pattern =
               DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle.SHORT,
                                                                    null, chrono, locale);
           String prePattern = pattern.substring(0, pattern.indexOf("y"));
           String postPattern = pattern.substring(pattern.lastIndexOf("y")+1);
           int baseYear = LocalDate.now().getYear() - 99;
           DateTimeFormatter df = new DateTimeFormatterBuilder()
                       .parseLenient()
                       .appendPattern(prePattern)
                       .appendValueReduced(ChronoField.YEAR, 2, 2, baseYear)
                       .appendPattern(postPattern)
                       .toFormatter();
           return LocalDate.from(chrono.date(df.parse(text)));
       } else {
           return null;
       }
   }
 
Параметры:
value - значение для свойства converter
См. также:
  • getConverter()
  • converterProperty()

getConverter

public final StringConverter<LocalDate> getConverter()
Получает значение свойства converter.
Описание свойства:
Преобразует входной текст в объект типа LocalDate и обратно.

Если приложение не задает, класс DatePicker skin установит преобразователь на основе DateTimeFormatter для текущего Locale и chronology. Этот форматер используется для парсинга и отображения текущего значения даты. Установка значения в null восстановит преобразователь по умолчанию.

Пример с явным форматером:


 datePicker.setConverter(new StringConverter<LocalDate>() {
     String pattern = "yyyy-MM-dd";
     DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(pattern);

     {
         datePicker.setPromptText(pattern.toLowerCase());
     }

     @Override public String toString(LocalDate date) {
         if (date != null) {
             return dateFormatter.format(date);
         } else {
             return "";
         }
     }

     @Override public LocalDate fromString(String string) {
         if (string != null && !string.isEmpty()) {
             return LocalDate.parse(string, dateFormatter);
         } else {
             return null;
         }
     }
 });
 

Пример, который оборачивает форматер по умолчанию и перехватывает исключения парсинга:


   final StringConverter<LocalDate> defaultConverter = datePicker.getConverter();
   datePicker.setConverter(new StringConverter<LocalDate>() {
       @Override public String toString(LocalDate value) {
           return defaultConverter.toString(value);
       }

       @Override public LocalDate fromString(String text) {
           try {
               return defaultConverter.fromString(text);
           } catch (DateTimeParseException ex) {
               System.err.println("HelloDatePicker: "+ex.getMessage());
               throw ex;
           }
       }
   });
 

Базовый год по умолчанию для парсинга входных данных, содержащих только две цифры для года, равен 2000 (см. DateTimeFormatter). Это значение по умолчанию не подходит для ввода даты рождения. Следующий пример изменяет метод fromString() преобразователя, чтобы позволить ввод двухзначного года для дат рождения до 99 лет в прошлом.


   @Override public LocalDate fromString(String text) {
       if (text != null && !text.isEmpty()) {
           Locale locale = Locale.getDefault(Locale.Category.FORMAT);
           Chronology chrono = datePicker.getChronology();
           String pattern =
               DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle.SHORT,
                                                                    null, chrono, locale);
           String prePattern = pattern.substring(0, pattern.indexOf("y"));
           String postPattern = pattern.substring(pattern.lastIndexOf("y")+1);
           int baseYear = LocalDate.now().getYear() - 99;
           DateTimeFormatter df = new DateTimeFormatterBuilder()
                       .parseLenient()
                       .appendPattern(prePattern)
                       .appendValueReduced(ChronoField.YEAR, 2, 2, baseYear)
                       .appendPattern(postPattern)
                       .toFormatter();
           return LocalDate.from(chrono.date(df.parse(text)));
       } else {
           return null;
       }
   }
 
Возвращает:
значение свойства converter
См. также:
  • setConverter(StringConverter)
  • converterProperty()

getEditor

public final TextField getEditor()
Получает значение свойства editor.
Описание свойства:
Редактор для DatePicker.
Возвращает:
значение свойства editor
См. также:
  • editorProperty()

editorProperty

public final ReadOnlyObjectProperty<TextField> editorProperty()
Редактор для DatePicker.
Возвращает:
свойство editor
См. также:
  • getEditor()

commitValue

public final void commitValue()
Если элемент управления DatePicker является editable, вызов этого метода попытается сохранить текущий текст и преобразовать его в value.
Since:
18

cancelEdit

public final void cancelEdit()
Если DatePicker является editable, вызов этого метода попытается заменить текст редактора последним сохранённым value.
Since:
18

getClassCssMetaData

public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
Получает CssMetaData, связанные с этим классом, которые могут включать CssMetaData его суперклассов.
Returns:
CssMetaData

getControlCssMetaData

public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
Получает неизменяемый список стилизуемых свойств элемента управления CSS.
Overrides:
getControlCssMetaData в классе Control
Returns:
неизменяемый список стилизуемых свойств элемента управления CSS
Since:
JavaFX 8.0

Отправить сообщение об ошибке или предложить улучшение
Авторские права © 2008, 2025, Oracle и/или его дочерние компании. Все права защищены.

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API