# Class ChoiceBox<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.ChoiceBox<T>

Type Parameters:
  `T` - the type of the item contained within the ChoiceBox

All Implemented Interfaces:
  `Styleable`, `EventTarget`, `Skinnable`

@DefaultProperty("items") public class ChoiceBox<T> extends Control
The ChoiceBox is used for presenting the user with a relatively small set of predefined choices from which they may choose. The ChoiceBox, when "showing", will display to the user these choices and allow them to pick exactly one choice. When not showing, the current choice is displayed.

By default, the ChoiceBox has no item selected unless otherwise specified. Although the ChoiceBox will only allow a user to select from the predefined list, it is possible for the developer to specify the selected item to be something other than what is available in the predefined list. This is required for several important use cases. Configuration of the ChoiceBox is order independent. You may either specify the items and then the selected item, or you may specify the selected item and then the items. Either way will function correctly.

ChoiceBox item selection is handled by `SelectionModel`. As with ListView and ComboBox, it is possible to modify the `SelectionModel` that is used, although this is likely to be rarely changed. ChoiceBox supports only a single selection model, hence the default used is a `SingleSelectionModel`.

Example:

     ChoiceBox cb = new ChoiceBox();
     cb.getItems().addAll("item1", "item2", "item3");

Since:
  JavaFX 2.0

- ## Property Summary

  Properties
  Type
  Property
  Description
  `final ObjectProperty<StringConverter<T>>`
  `converter`
  Allows a way to specify how to represent objects in the items list.
  `final ObjectProperty<ObservableList<T>>`
  `items`
  The items to display in the choice box.
  `final ObjectProperty<EventHandler<ActionEvent>>`
  `onAction`
  The ChoiceBox action, which is invoked whenever the ChoiceBox `value` property is changed.
  `final ObjectProperty<EventHandler<Event>>`
  `onHidden`
  Called just after the `ChoiceBox` popup has been hidden.
  `final ObjectProperty<EventHandler<Event>>`
  `onHiding`
  Called just prior to the `ChoiceBox` popup being hidden.
  `final ObjectProperty<EventHandler<Event>>`
  `onShowing`
  Called just prior to the `ChoiceBox` popup being shown.
  `final ObjectProperty<EventHandler<Event>>`
  `onShown`
  Called just after the `ChoiceBox` popup is shown.
  `final ObjectProperty<SingleSelectionModel<T>>`
  `selectionModel`
  The selection model for the ChoiceBox.
  `final ReadOnlyBooleanProperty`
  `showing`
  Indicates whether the drop down is displaying the list of choices to the user.
  `final ObjectProperty<T>`
  `value`
  The value of this ChoiceBox is defined as the selected item in the ChoiceBox selection model.

  ### 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, 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`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final EventType<Event>`
  `ON_HIDDEN`
  Called when the ChoiceBox popup has been hidden.
  `static final EventType<Event>`
  `ON_HIDING`
  Called when the ChoiceBox popup will be hidden.
  `static final EventType<Event>`
  `ON_SHOWING`
  Called prior to the ChoiceBox showing its popup after the user has clicked or otherwise interacted with the ChoiceBox.
  `static final EventType<Event>`
  `ON_SHOWN`
  Called after the ChoiceBox has shown its popup.

  ### 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
  `ChoiceBox()`
  Create a new ChoiceBox which has an empty list of items.
  `ChoiceBox(ObservableList<T> items)`
  Create a new ChoiceBox with the given set of items.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final ObjectProperty<StringConverter<T>>`
  `converterProperty()`
  Allows a way to specify how to represent objects in the items list.
  `final StringConverter<T>`
  `getConverter()`
  Gets the value of the `converter` property.
  `final ObservableList<T>`
  `getItems()`
  Gets the value of the `items` property.
  `final EventHandler<ActionEvent>`
  `getOnAction()`
  Gets the value of the `onAction` property.
  `final EventHandler<Event>`
  `getOnHidden()`
  Gets the value of the `onHidden` property.
  `final EventHandler<Event>`
  `getOnHiding()`
  Gets the value of the `onHiding` property.
  `final EventHandler<Event>`
  `getOnShowing()`
  Gets the value of the `onShowing` property.
  `final EventHandler<Event>`
  `getOnShown()`
  Gets the value of the `onShown` property.
  `final SingleSelectionModel<T>`
  `getSelectionModel()`
  Gets the value of the `selectionModel` property.
  `final T`
  `getValue()`
  Gets the value of the `value` property.
  `void`
  `hide()`
  Closes the list of choices.
  `final boolean`
  `isShowing()`
  Gets the value of the `showing` property.
  `final ObjectProperty<ObservableList<T>>`
  `itemsProperty()`
  The items to display in the choice box.
  `final ObjectProperty<EventHandler<ActionEvent>>`
  `onActionProperty()`
  The ChoiceBox action, which is invoked whenever the ChoiceBox `value` property is changed.
  `final ObjectProperty<EventHandler<Event>>`
  `onHiddenProperty()`
  Called just after the `ChoiceBox` popup has been hidden.
  `final ObjectProperty<EventHandler<Event>>`
  `onHidingProperty()`
  Called just prior to the `ChoiceBox` popup being hidden.
  `final ObjectProperty<EventHandler<Event>>`
  `onShowingProperty()`
  Called just prior to the `ChoiceBox` popup being shown.
  `final ObjectProperty<EventHandler<Event>>`
  `onShownProperty()`
  Called just after the `ChoiceBox` popup is shown.
  `final ObjectProperty<SingleSelectionModel<T>>`
  `selectionModelProperty()`
  The selection model for the ChoiceBox.
  `final void`
  `setConverter(StringConverter<T> value)`
  Sets the value of the `converter` property.
  `final void`
  `setItems(ObservableList<T> value)`
  Sets the value of the `items` property.
  `final void`
  `setOnAction(EventHandler<ActionEvent> value)`
  Sets the value of the `onAction` property.
  `final void`
  `setOnHidden(EventHandler<Event> value)`
  Sets the value of the `onHidden` property.
  `final void`
  `setOnHiding(EventHandler<Event> value)`
  Sets the value of the `onHiding` property.
  `final void`
  `setOnShowing(EventHandler<Event> value)`
  Sets the value of the `onShowing` property.
  `final void`
  `setOnShown(EventHandler<Event> value)`
  Sets the value of the `onShown` property.
  `final void`
  `setSelectionModel(SingleSelectionModel<T> value)`
  Sets the value of the `selectionModel` property.
  `final void`
  `setValue(T value)`
  Sets the value of the `value` property.
  `void`
  `show()`
  Opens the list of choices.
  `final ReadOnlyBooleanProperty`
  `showingProperty()`
  Indicates whether the drop down is displaying the list of choices to the user.
  `final ObjectProperty<T>`
  `valueProperty()`
  The value of this ChoiceBox is defined as the selected item in the ChoiceBox selection model.

  ### Methods declared in class javafx.scene.control.Control

  `computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, setContextMenu, setSkin, 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, 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`

  ### Methods declared in class java.lang.Object

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

  ### Methods declared in interface javafx.css.Styleable

  `getStyleableNode`

- ## Property Details

  - ### selectionModel

    public final ObjectProperty<SingleSelectionModel<T>> selectionModelProperty
    The selection model for the ChoiceBox. Only a single choice can be made, hence, the ChoiceBox supports only a SingleSelectionModel. Generally, the main interaction with the selection model is to explicitly set which item in the items list should be selected, or to listen to changes in the selection to know which item has been chosen.
    See Also:
      - `getSelectionModel()`
      - `setSelectionModel(SingleSelectionModel)`
      - `selectionModelProperty()`

  - ### showing

    public final ReadOnlyBooleanProperty showingProperty
    Indicates whether the drop down is displaying the list of choices to the user. This is a readonly property which should be manipulated by means of the #show and #hide methods.
    See Also:
      - `isShowing()`
      - `showingProperty()`

  - ### items

    public final ObjectProperty<ObservableList<T>> itemsProperty
    The items to display in the choice box. The selected item (as indicated in the selection model) must always be one of these items.
    See Also:
      - `getItems()`
      - `setItems(ObservableList)`
      - `itemsProperty()`

  - ### converter

    public final ObjectProperty<StringConverter<T>> converterProperty
    Allows a way to specify how to represent objects in the items list. When a StringConverter is set, the object toString method is not called and instead its toString(object T) is called, passing the objects in the items list. This is useful when using domain objects in a ChoiceBox as this property allows for customization of the representation. Also, any of the pre-built Converters available in the `javafx.util.converter` package can be set.
    Since:
      JavaFX 2.1
    See Also:
      - `getConverter()`
      - `setConverter(StringConverter)`
      - `converterProperty()`

  - ### value

    public final ObjectProperty<T> valueProperty
    The value of this ChoiceBox is defined as the selected item in the ChoiceBox selection model. The valueProperty is synchronized with the selectedItem. This property allows for bi-directional binding of external properties to the ChoiceBox and updates the selection model accordingly.
    Since:
      JavaFX 2.1
    See Also:
      - `getValue()`
      - `setValue(T)`
      - `valueProperty()`

  - ### onAction

    public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty
    The ChoiceBox action, which is invoked whenever the ChoiceBox `value` property is changed. This may be due to the value property being programmatically changed or when the user selects an item in a popup menu.
    Since:
      JavaFX 8u60
    See Also:
      - `getOnAction()`
      - `setOnAction(EventHandler)`
      - `onActionProperty()`

  - ### onShowing

    public final ObjectProperty<EventHandler<Event>> onShowingProperty
    Called just prior to the `ChoiceBox` popup being shown.
    Since:
      JavaFX 8u60
    See Also:
      - `getOnShowing()`
      - `setOnShowing(EventHandler)`
      - `onShowingProperty()`

  - ### onShown

    public final ObjectProperty<EventHandler<Event>> onShownProperty
    Called just after the `ChoiceBox` popup is shown.
    Since:
      JavaFX 8u60
    See Also:
      - `getOnShown()`
      - `setOnShown(EventHandler)`
      - `onShownProperty()`

  - ### onHiding

    public final ObjectProperty<EventHandler<Event>> onHidingProperty
    Called just prior to the `ChoiceBox` popup being hidden.
    Since:
      JavaFX 8u60
    See Also:
      - `getOnHiding()`
      - `setOnHiding(EventHandler)`
      - `onHidingProperty()`

  - ### onHidden

    public final ObjectProperty<EventHandler<Event>> onHiddenProperty
    Called just after the `ChoiceBox` popup has been hidden.
    Since:
      JavaFX 8u60
    See Also:
      - `getOnHidden()`
      - `setOnHidden(EventHandler)`
      - `onHiddenProperty()`

- ## Field Details

  - ### ON_SHOWING

    public static final EventType<Event> ON_SHOWING
    Called prior to the ChoiceBox showing its popup after the user has clicked or otherwise interacted with the ChoiceBox.
    Since:
      JavaFX 8u60

  - ### ON_SHOWN

    public static final EventType<Event> ON_SHOWN
    Called after the ChoiceBox has shown its popup.
    Since:
      JavaFX 8u60

  - ### ON_HIDING

    public static final EventType<Event> ON_HIDING
    Called when the ChoiceBox popup will be hidden.
    Since:
      JavaFX 8u60

  - ### ON_HIDDEN

    public static final EventType<Event> ON_HIDDEN
    Called when the ChoiceBox popup has been hidden.
    Since:
      JavaFX 8u60

- ## Constructor Details

  - ### ChoiceBox

    public ChoiceBox()
    Create a new ChoiceBox which has an empty list of items.

  - ### ChoiceBox

    public ChoiceBox(ObservableList<T> items)
    Create a new ChoiceBox with the given set of items. Since it is observable, the content of this list may change over time and the ChoiceBox will be updated accordingly.
    Parameters:
      `items` - the set of items

- ## Method Details

  - ### setSelectionModel

    public final void setSelectionModel(SingleSelectionModel<T> value)
    Sets the value of the `selectionModel` property.
    Property description:
      The selection model for the ChoiceBox. Only a single choice can be made, hence, the ChoiceBox supports only a SingleSelectionModel. Generally, the main interaction with the selection model is to explicitly set which item in the items list should be selected, or to listen to changes in the selection to know which item has been chosen.
    Parameters:
      `value` - the value for the `selectionModel` property
    See Also:
      - `getSelectionModel()`
      - `selectionModelProperty()`

  - ### getSelectionModel

    public final SingleSelectionModel<T> getSelectionModel()
    Gets the value of the `selectionModel` property.
    Property description:
      The selection model for the ChoiceBox. Only a single choice can be made, hence, the ChoiceBox supports only a SingleSelectionModel. Generally, the main interaction with the selection model is to explicitly set which item in the items list should be selected, or to listen to changes in the selection to know which item has been chosen.
    Returns:
      the value of the `selectionModel` property
    See Also:
      - `setSelectionModel(SingleSelectionModel)`
      - `selectionModelProperty()`

  - ### selectionModelProperty

    public final ObjectProperty<SingleSelectionModel<T>> selectionModelProperty()
    The selection model for the ChoiceBox. Only a single choice can be made, hence, the ChoiceBox supports only a SingleSelectionModel. Generally, the main interaction with the selection model is to explicitly set which item in the items list should be selected, or to listen to changes in the selection to know which item has been chosen.
    Returns:
      the `selectionModel` property
    See Also:
      - `getSelectionModel()`
      - `setSelectionModel(SingleSelectionModel)`

  - ### isShowing

    public final boolean isShowing()
    Gets the value of the `showing` property.
    Property description:
      Indicates whether the drop down is displaying the list of choices to the user. This is a readonly property which should be manipulated by means of the #show and #hide methods.
    Returns:
      the value of the `showing` property
    See Also:
      - `showingProperty()`

  - ### showingProperty

    public final ReadOnlyBooleanProperty showingProperty()
    Indicates whether the drop down is displaying the list of choices to the user. This is a readonly property which should be manipulated by means of the #show and #hide methods.
    Returns:
      the `showing` property
    See Also:
      - `isShowing()`

  - ### setItems

    public final void setItems(ObservableList<T> value)
    Sets the value of the `items` property.
    Property description:
      The items to display in the choice box. The selected item (as indicated in the selection model) must always be one of these items.
    Parameters:
      `value` - the value for the `items` property
    See Also:
      - `getItems()`
      - `itemsProperty()`

  - ### getItems

    public final ObservableList<T> getItems()
    Gets the value of the `items` property.
    Property description:
      The items to display in the choice box. The selected item (as indicated in the selection model) must always be one of these items.
    Returns:
      the value of the `items` property
    See Also:
      - `setItems(ObservableList)`
      - `itemsProperty()`

  - ### itemsProperty

    public final ObjectProperty<ObservableList<T>> itemsProperty()
    The items to display in the choice box. The selected item (as indicated in the selection model) must always be one of these items.
    Returns:
      the `items` property
    See Also:
      - `getItems()`
      - `setItems(ObservableList)`

  - ### converterProperty

    public final ObjectProperty<StringConverter<T>> converterProperty()
    Allows a way to specify how to represent objects in the items list. When a StringConverter is set, the object toString method is not called and instead its toString(object T) is called, passing the objects in the items list. This is useful when using domain objects in a ChoiceBox as this property allows for customization of the representation. Also, any of the pre-built Converters available in the `javafx.util.converter` package can be set.
    Returns:
      the string converter property
    Since:
      JavaFX 2.1
    See Also:
      - `getConverter()`
      - `setConverter(StringConverter)`

  - ### setConverter

    public final void setConverter(StringConverter<T> value)
    Sets the value of the `converter` property.
    Property description:
      Allows a way to specify how to represent objects in the items list. When a StringConverter is set, the object toString method is not called and instead its toString(object T) is called, passing the objects in the items list. This is useful when using domain objects in a ChoiceBox as this property allows for customization of the representation. Also, any of the pre-built Converters available in the `javafx.util.converter` package can be set.
    Parameters:
      `value` - the value for the `converter` property
    Since:
      JavaFX 2.1
    See Also:
      - `getConverter()`
      - `converterProperty()`

  - ### getConverter

    public final StringConverter<T> getConverter()
    Gets the value of the `converter` property.
    Property description:
      Allows a way to specify how to represent objects in the items list. When a StringConverter is set, the object toString method is not called and instead its toString(object T) is called, passing the objects in the items list. This is useful when using domain objects in a ChoiceBox as this property allows for customization of the representation. Also, any of the pre-built Converters available in the `javafx.util.converter` package can be set.
    Returns:
      the value of the `converter` property
    Since:
      JavaFX 2.1
    See Also:
      - `setConverter(StringConverter)`
      - `converterProperty()`

  - ### valueProperty

    public final ObjectProperty<T> valueProperty()
    The value of this ChoiceBox is defined as the selected item in the ChoiceBox selection model. The valueProperty is synchronized with the selectedItem. This property allows for bi-directional binding of external properties to the ChoiceBox and updates the selection model accordingly.
    Returns:
      the value property
    Since:
      JavaFX 2.1
    See Also:
      - `getValue()`
      - `setValue(T)`

  - ### setValue

    public final void setValue(T value)
    Sets the value of the `value` property.
    Property description:
      The value of this ChoiceBox is defined as the selected item in the ChoiceBox selection model. The valueProperty is synchronized with the selectedItem. This property allows for bi-directional binding of external properties to the ChoiceBox and updates the selection model accordingly.
    Parameters:
      `value` - the value for the `value` property
    Since:
      JavaFX 2.1
    See Also:
      - `getValue()`
      - `valueProperty()`

  - ### getValue

    public final T getValue()
    Gets the value of the `value` property.
    Property description:
      The value of this ChoiceBox is defined as the selected item in the ChoiceBox selection model. The valueProperty is synchronized with the selectedItem. This property allows for bi-directional binding of external properties to the ChoiceBox and updates the selection model accordingly.
    Returns:
      the value of the `value` property
    Since:
      JavaFX 2.1
    See Also:
      - `setValue(T)`
      - `valueProperty()`

  - ### onActionProperty

    public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty()
    The ChoiceBox action, which is invoked whenever the ChoiceBox `value` property is changed. This may be due to the value property being programmatically changed or when the user selects an item in a popup menu.
    Returns:
      the on action property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnAction()`
      - `setOnAction(EventHandler)`

  - ### setOnAction

    public final void setOnAction(EventHandler<ActionEvent> value)
    Sets the value of the `onAction` property.
    Property description:
      The ChoiceBox action, which is invoked whenever the ChoiceBox `value` property is changed. This may be due to the value property being programmatically changed or when the user selects an item in a popup menu.
    Parameters:
      `value` - the value for the `onAction` property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnAction()`
      - `onActionProperty()`

  - ### getOnAction

    public final EventHandler<ActionEvent> getOnAction()
    Gets the value of the `onAction` property.
    Property description:
      The ChoiceBox action, which is invoked whenever the ChoiceBox `value` property is changed. This may be due to the value property being programmatically changed or when the user selects an item in a popup menu.
    Returns:
      the value of the `onAction` property
    Since:
      JavaFX 8u60
    See Also:
      - `setOnAction(EventHandler)`
      - `onActionProperty()`

  - ### onShowingProperty

    public final ObjectProperty<EventHandler<Event>> onShowingProperty()
    Called just prior to the `ChoiceBox` popup being shown.
    Returns:
      the on showing property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnShowing()`
      - `setOnShowing(EventHandler)`

  - ### setOnShowing

    public final void setOnShowing(EventHandler<Event> value)
    Sets the value of the `onShowing` property.
    Property description:
      Called just prior to the `ChoiceBox` popup being shown.
    Parameters:
      `value` - the value for the `onShowing` property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnShowing()`
      - `onShowingProperty()`

  - ### getOnShowing

    public final EventHandler<Event> getOnShowing()
    Gets the value of the `onShowing` property.
    Property description:
      Called just prior to the `ChoiceBox` popup being shown.
    Returns:
      the value of the `onShowing` property
    Since:
      JavaFX 8u60
    See Also:
      - `setOnShowing(EventHandler)`
      - `onShowingProperty()`

  - ### onShownProperty

    public final ObjectProperty<EventHandler<Event>> onShownProperty()
    Called just after the `ChoiceBox` popup is shown.
    Returns:
      the on shown property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnShown()`
      - `setOnShown(EventHandler)`

  - ### setOnShown

    public final void setOnShown(EventHandler<Event> value)
    Sets the value of the `onShown` property.
    Property description:
      Called just after the `ChoiceBox` popup is shown.
    Parameters:
      `value` - the value for the `onShown` property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnShown()`
      - `onShownProperty()`

  - ### getOnShown

    public final EventHandler<Event> getOnShown()
    Gets the value of the `onShown` property.
    Property description:
      Called just after the `ChoiceBox` popup is shown.
    Returns:
      the value of the `onShown` property
    Since:
      JavaFX 8u60
    See Also:
      - `setOnShown(EventHandler)`
      - `onShownProperty()`

  - ### onHidingProperty

    public final ObjectProperty<EventHandler<Event>> onHidingProperty()
    Called just prior to the `ChoiceBox` popup being hidden.
    Returns:
      the on hiding property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnHiding()`
      - `setOnHiding(EventHandler)`

  - ### setOnHiding

    public final void setOnHiding(EventHandler<Event> value)
    Sets the value of the `onHiding` property.
    Property description:
      Called just prior to the `ChoiceBox` popup being hidden.
    Parameters:
      `value` - the value for the `onHiding` property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnHiding()`
      - `onHidingProperty()`

  - ### getOnHiding

    public final EventHandler<Event> getOnHiding()
    Gets the value of the `onHiding` property.
    Property description:
      Called just prior to the `ChoiceBox` popup being hidden.
    Returns:
      the value of the `onHiding` property
    Since:
      JavaFX 8u60
    See Also:
      - `setOnHiding(EventHandler)`
      - `onHidingProperty()`

  - ### onHiddenProperty

    public final ObjectProperty<EventHandler<Event>> onHiddenProperty()
    Called just after the `ChoiceBox` popup has been hidden.
    Returns:
      the on hidden property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnHidden()`
      - `setOnHidden(EventHandler)`

  - ### setOnHidden

    public final void setOnHidden(EventHandler<Event> value)
    Sets the value of the `onHidden` property.
    Property description:
      Called just after the `ChoiceBox` popup has been hidden.
    Parameters:
      `value` - the value for the `onHidden` property
    Since:
      JavaFX 8u60
    See Also:
      - `getOnHidden()`
      - `onHiddenProperty()`

  - ### getOnHidden

    public final EventHandler<Event> getOnHidden()
    Gets the value of the `onHidden` property.
    Property description:
      Called just after the `ChoiceBox` popup has been hidden.
    Returns:
      the value of the `onHidden` property
    Since:
      JavaFX 8u60
    See Also:
      - `setOnHidden(EventHandler)`
      - `onHiddenProperty()`

  - ### show

    public void show()
    Opens the list of choices.
    Throws:
      `IllegalStateException` - if this method is called on a thread other than the JavaFX Application Thread.

  - ### hide

    public void hide()
    Closes the list of choices.
    Throws:
      `IllegalStateException` - if this method is called on a thread other than the JavaFX Application Thread.