Spec-Zone.ru › OpenJavaFX 17

Class 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
All Implemented Interfaces:
Styleable, EventTarget, Skinnable
public class DatePicker
extends ComboBoxBase<LocalDate>
The DatePicker control allows the user to enter a date as text or to select a date from a calendar popup. The calendar is based on either the standard ISO-8601 chronology or any of the other chronology classes defined in the java.time.chrono package.

The value property represents the currently selected LocalDate. An initial date can be set via the constructor or by calling setValue(LocalDate). The default value is null.

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

The chronology property specifies a calendar system to be used for parsing, displaying, and choosing dates. The value property is always defined in the ISO calendar system, however, so applications based on a different chronology may use the conversion methods provided in the Chronology API to get or set the corresponding ChronoLocalDate value. For example:

LocalDate isoDate = datePicker.getValue();
 ChronoLocalDate chronoDate =
     ((isoDate != null) ? datePicker.getChronology().date(isoDate) : null);
 System.err.println("Selected date: " + chronoDate);
Since:
JavaFX 8.0

Property Summary

Properties
Type Property Description
ObjectProperty<Chronology> chronology
The calendar system used for parsing, displaying, and choosing dates in the DatePicker control.
ObjectProperty<StringConverter<LocalDate>> converter
Converts the input text to an object of type LocalDate and vice versa.
ObjectProperty<Callback<DatePicker,​DateCell>> dayCellFactory
A custom cell factory can be provided to customize individual day cells in the DatePicker popup.
ReadOnlyObjectProperty<TextField> editor
The editor for the DatePicker.
BooleanProperty showWeekNumbers
Whether the DatePicker popup should display a column showing week numbers.

Properties declared in class javafx.scene.control.ComboBoxBase

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

Properties declared in class javafx.scene.control.Control

contextMenu, skin, tooltip

Properties declared in class javafx.scene.layout.Region

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

Properties declared in class javafx.scene.Parent

needsLayout

Properties declared in class javafx.scene.Node

accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, 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

Field Summary

Fields declared in class javafx.scene.control.ComboBoxBase

ON_HIDDEN, ON_HIDING, ON_SHOWING, ON_SHOWN

Fields declared in class javafx.scene.layout.Region

USE_COMPUTED_SIZE, USE_PREF_SIZE

Fields declared in class javafx.scene.Node

BASELINE_OFFSET_SAME_AS_HEIGHT

Constructor Summary

Constructors
Constructor Description
DatePicker()
Creates a default DatePicker instance with a null date value set.
DatePicker​(LocalDate localDate)
Creates a DatePicker instance and sets the value to the given date.

Method Summary

Modifier and Type Method Description
ObjectProperty<Chronology> chronologyProperty()
The calendar system used for parsing, displaying, and choosing dates in the DatePicker control.
ObjectProperty<StringConverter<LocalDate>> converterProperty()
Converts the input text to an object of type LocalDate and vice versa.
ObjectProperty<Callback<DatePicker,​DateCell>> dayCellFactoryProperty()
A custom cell factory can be provided to customize individual day cells in the DatePicker popup.
ReadOnlyObjectProperty<TextField> editorProperty()
The editor for the DatePicker.
Chronology getChronology()
Gets the value of the property chronology.
static List<CssMetaData<? extends Styleable,​?>> getClassCssMetaData()
List<CssMetaData<? extends Styleable,​?>> getControlCssMetaData()
StringConverter<LocalDate> getConverter()
Gets the value of the property converter.
Callback<DatePicker,​DateCell> getDayCellFactory()
Gets the value of the property dayCellFactory.
TextField getEditor()
Gets the value of the property editor.
boolean isShowWeekNumbers()
Gets the value of the property showWeekNumbers.
void setChronology​(Chronology value)
Sets the value of the property chronology.
void setConverter​(StringConverter<LocalDate> value)
Sets the value of the property converter.
void setDayCellFactory​(Callback<DatePicker,​DateCell> value)
Sets the value of the property dayCellFactory.
void setShowWeekNumbers​(boolean value)
Sets the value of the property showWeekNumbers.
BooleanProperty showWeekNumbersProperty()
Whether the DatePicker popup should display a column showing week numbers.

Methods declared in class 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

Methods declared in class javafx.scene.control.Control

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

Methods declared in class 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

Methods declared in class javafx.scene.Parent

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

Methods declared in class 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, 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, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, 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, 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

Methods declared in class java.lang.Object

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

Methods declared in interface javafx.scene.control.Skinnable

getSkin, setSkin

Methods declared in interface javafx.css.Styleable

getStyleableNode, getStyleClass

Property Details

dayCellFactory

public final ObjectProperty<Callback<DatePicker,DateCell>> dayCellFactoryProperty
A custom cell factory can be provided to customize individual day cells in the DatePicker popup. Refer to DateCell and Cell for more information on cell factories. Example:

 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);
 
Default value:
null
See Also:
getDayCellFactory(), setDayCellFactory(Callback)

chronology

public final ObjectProperty<Chronology> chronologyProperty
The calendar system used for parsing, displaying, and choosing dates in the DatePicker control.

The default value is returned from a call to Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). The default is usually IsoChronology unless provided explicitly in the Locale by use of a Locale calendar extension. Setting the value to null will restore the default chronology.

See Also:
getChronology(), setChronology(Chronology)

showWeekNumbers

public final BooleanProperty showWeekNumbersProperty
Whether the DatePicker popup should display a column showing week numbers.

The default value is specified in a resource bundle, and depends on the country of the current locale.

See Also:
isShowWeekNumbers(), setShowWeekNumbers(boolean)

converter

public final ObjectProperty<StringConverter<LocalDate>> converterProperty
Converts the input text to an object of type LocalDate and vice versa.

If not set by the application, the DatePicker skin class will set a converter based on a DateTimeFormatter for the current Locale and chronology. This formatter is then used to parse and display the current date value. Setting the value to null will restore the default converter.

Example using an explicit formatter:


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

Example that wraps the default formatter and catches parse exceptions:


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

The default base year for parsing input containing only two digits for the year is 2000 (see DateTimeFormatter). This default is not useful for allowing a person's date of birth to be typed. The following example modifies the converter's fromString() method to allow a two digit year for birth dates up to 99 years in the past.


   @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;
       }
   }
 
See Also:
getConverter(), setConverter(StringConverter)

editor

public final ReadOnlyObjectProperty<TextField> editorProperty
The editor for the DatePicker.
See Also:
getEditor()

Constructor Details

DatePicker

public DatePicker()
Creates a default DatePicker instance with a null date value set.

DatePicker

public DatePicker(LocalDate localDate)
Creates a DatePicker instance and sets the value to the given date.
Parameters:
localDate - to be set as the currently selected date in the DatePicker. Can be null.

Method Details

setDayCellFactory

public final void setDayCellFactory(Callback<DatePicker,​DateCell> value)
Sets the value of the property dayCellFactory.
Property description:
A custom cell factory can be provided to customize individual day cells in the DatePicker popup. Refer to DateCell and Cell for more information on cell factories. Example:

 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);
 
Default value:
null

getDayCellFactory

public final Callback<DatePicker,DateCell> getDayCellFactory()
Gets the value of the property dayCellFactory.
Property description:
A custom cell factory can be provided to customize individual day cells in the DatePicker popup. Refer to DateCell and Cell for more information on cell factories. Example:

 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);
 
Default value:
null

dayCellFactoryProperty

public final ObjectProperty<Callback<DatePicker,DateCell>> dayCellFactoryProperty()
A custom cell factory can be provided to customize individual day cells in the DatePicker popup. Refer to DateCell and Cell for more information on cell factories. Example:

 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);
 
Default value:
null
See Also:
getDayCellFactory(), setDayCellFactory(Callback)

chronologyProperty

public final ObjectProperty<Chronology> chronologyProperty()
The calendar system used for parsing, displaying, and choosing dates in the DatePicker control.

The default value is returned from a call to Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). The default is usually IsoChronology unless provided explicitly in the Locale by use of a Locale calendar extension. Setting the value to null will restore the default chronology.

See Also:
getChronology(), setChronology(Chronology)

getChronology

public final Chronology getChronology()
Gets the value of the property chronology.
Property description:
The calendar system used for parsing, displaying, and choosing dates in the DatePicker control.

The default value is returned from a call to Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). The default is usually IsoChronology unless provided explicitly in the Locale by use of a Locale calendar extension. Setting the value to null will restore the default chronology.

setChronology

public final void setChronology(Chronology value)
Sets the value of the property chronology.
Property description:
The calendar system used for parsing, displaying, and choosing dates in the DatePicker control.

The default value is returned from a call to Chronology.ofLocale(Locale.getDefault(Locale.Category.FORMAT)). The default is usually IsoChronology unless provided explicitly in the Locale by use of a Locale calendar extension. Setting the value to null will restore the default chronology.

showWeekNumbersProperty

public final BooleanProperty showWeekNumbersProperty()
Whether the DatePicker popup should display a column showing week numbers.

The default value is specified in a resource bundle, and depends on the country of the current locale.

See Also:
isShowWeekNumbers(), setShowWeekNumbers(boolean)

setShowWeekNumbers

public final void setShowWeekNumbers(boolean value)
Sets the value of the property showWeekNumbers.
Property description:
Whether the DatePicker popup should display a column showing week numbers.

The default value is specified in a resource bundle, and depends on the country of the current locale.

isShowWeekNumbers

public final boolean isShowWeekNumbers()
Gets the value of the property showWeekNumbers.
Property description:
Whether the DatePicker popup should display a column showing week numbers.

The default value is specified in a resource bundle, and depends on the country of the current locale.

converterProperty

public final ObjectProperty<StringConverter<LocalDate>> converterProperty()
Converts the input text to an object of type LocalDate and vice versa.

If not set by the application, the DatePicker skin class will set a converter based on a DateTimeFormatter for the current Locale and chronology. This formatter is then used to parse and display the current date value. Setting the value to null will restore the default converter.

Example using an explicit formatter:


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

Example that wraps the default formatter and catches parse exceptions:


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

The default base year for parsing input containing only two digits for the year is 2000 (see DateTimeFormatter). This default is not useful for allowing a person's date of birth to be typed. The following example modifies the converter's fromString() method to allow a two digit year for birth dates up to 99 years in the past.


   @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;
       }
   }
 
See Also:
getConverter(), setConverter(StringConverter)

setConverter

public final void setConverter(StringConverter<LocalDate> value)
Sets the value of the property converter.
Property description:
Converts the input text to an object of type LocalDate and vice versa.

If not set by the application, the DatePicker skin class will set a converter based on a DateTimeFormatter for the current Locale and chronology. This formatter is then used to parse and display the current date value. Setting the value to null will restore the default converter.

Example using an explicit formatter:


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

Example that wraps the default formatter and catches parse exceptions:


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

The default base year for parsing input containing only two digits for the year is 2000 (see DateTimeFormatter). This default is not useful for allowing a person's date of birth to be typed. The following example modifies the converter's fromString() method to allow a two digit year for birth dates up to 99 years in the past.


   @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

public final StringConverter<LocalDate> getConverter()
Gets the value of the property converter.
Property description:
Converts the input text to an object of type LocalDate and vice versa.

If not set by the application, the DatePicker skin class will set a converter based on a DateTimeFormatter for the current Locale and chronology. This formatter is then used to parse and display the current date value. Setting the value to null will restore the default converter.

Example using an explicit formatter:


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

Example that wraps the default formatter and catches parse exceptions:


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

The default base year for parsing input containing only two digits for the year is 2000 (see DateTimeFormatter). This default is not useful for allowing a person's date of birth to be typed. The following example modifies the converter's fromString() method to allow a two digit year for birth dates up to 99 years in the past.


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

getEditor

public final TextField getEditor()
Gets the value of the property editor.
Property description:
The editor for the DatePicker.

editorProperty

public final ReadOnlyObjectProperty<TextField> editorProperty()
The editor for the DatePicker.
See Also:
getEditor()

getClassCssMetaData

public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
Returns:
The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.

getControlCssMetaData

public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
Overrides:
getControlCssMetaData in class Control
Returns:
unmodifiable list of the controls css styleable properties
Since:
JavaFX 8.0

© 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