Class ComboBoxBase<T>

Type Parameters:
T - The type of the value that has been selected or otherwise entered in to this ComboBox.
All Implemented Interfaces:
Styleable, EventTarget, Skinnable
Direct Known Subclasses:
ColorPicker, ComboBox, DatePicker

public abstract class ComboBoxBase<T> extends Control
Abstract base class for ComboBox-like controls. A ComboBox typically has a button that, when clicked, will pop up some means of allowing a user to select one or more values (depending on the implementation). This base class makes no assumptions about what happens when the show() and hide() methods are called, however commonly this results in either a popup or dialog appearing that allows for the user to provide the required information.

A ComboBox has a value property that represents the current user input. This may be based on a selection from a drop-down list, or it may be from user input when the ComboBox is editable.

An editable ComboBox is one which provides some means for an end-user to provide input for values that are not otherwise options available to them. For example, in the ComboBox implementation, an editable ComboBox provides a TextField that may be typed into. As mentioned above, when the user commits textual input into the textfield (commonly by pressing the Enter keyboard key), the value property will be updated.

The purpose of the separation between this class and, say, ComboBox is to allow for ComboBox-like controls that do not necessarily pop up a list of items. Examples of other implementations include color pickers, calendar pickers, etc. The ComboBox class provides the default, and most commonly expected implementation. Refer to that classes javadoc for more information.

Since:
JavaFX 2.1
See Also:
  • Property Details

  • Field Details

    • ON_SHOWING

      public static final EventType<Event> ON_SHOWING

      Called prior to the ComboBox showing its popup/display after the user has clicked or otherwise interacted with the ComboBox.

      Since:
      JavaFX 2.2
    • ON_SHOWN

      public static final EventType<Event> ON_SHOWN

      Called after the ComboBox has shown its popup/display.

      Since:
      JavaFX 2.2
    • ON_HIDING

      public static final EventType<Event> ON_HIDING

      Called when the ComboBox popup/display will be hidden.

      Since:
      JavaFX 2.2
    • ON_HIDDEN

      public static final EventType<Event> ON_HIDDEN

      Called when the ComboBox popup/display has been hidden.

      Since:
      JavaFX 2.2
  • Constructor Details

    • ComboBoxBase

      public ComboBoxBase()
      Creates a default ComboBoxBase instance.
  • Method Details

    • valueProperty

      public final ObjectProperty<T> valueProperty()
      The value of this ComboBox is defined as the selected item if the input is not editable, or if it is editable, the most recent user action: either the value input by the user, or the last selected item.
      Returns:
      the value property
      See Also:
    • setValue

      public final void setValue(T value)
      Sets the value of the value property.
      Property description:
      The value of this ComboBox is defined as the selected item if the input is not editable, or if it is editable, the most recent user action: either the value input by the user, or the last selected item.
      Parameters:
      value - the value for the value property
      See Also:
    • getValue

      public final T getValue()
      Gets the value of the value property.
      Property description:
      The value of this ComboBox is defined as the selected item if the input is not editable, or if it is editable, the most recent user action: either the value input by the user, or the last selected item.
      Returns:
      the value of the value property
      See Also:
    • editableProperty

      public final BooleanProperty editableProperty()
      Specifies whether the ComboBox allows for user input. When editable is true, the ComboBox has a text input area that a user may type in to. This input is then available via the value property.

      Note that when the editable property changes, the value property is reset, along with any other relevant state.

      Returns:
      the editable property
      See Also:
    • setEditable

      public final void setEditable(boolean value)
      Sets the value of the editable property.
      Property description:
      Specifies whether the ComboBox allows for user input. When editable is true, the ComboBox has a text input area that a user may type in to. This input is then available via the value property.

      Note that when the editable property changes, the value property is reset, along with any other relevant state.

      Parameters:
      value - the value for the editable property
      See Also:
    • isEditable

      public final boolean isEditable()
      Gets the value of the editable property.
      Property description:
      Specifies whether the ComboBox allows for user input. When editable is true, the ComboBox has a text input area that a user may type in to. This input is then available via the value property.

      Note that when the editable property changes, the value property is reset, along with any other relevant state.

      Returns:
      the value of the editable property
      See Also:
    • showingProperty

      public final ReadOnlyBooleanProperty showingProperty()
      Represents the current state of the ComboBox popup, and whether it is currently visible on screen (although it may be hidden behind other windows).
      Returns:
      the showing property
      See Also:
    • isShowing

      public final boolean isShowing()
      Gets the value of the showing property.
      Property description:
      Represents the current state of the ComboBox popup, and whether it is currently visible on screen (although it may be hidden behind other windows).
      Returns:
      the value of the showing property
      See Also:
    • promptTextProperty

      public final StringProperty promptTextProperty()
      The ComboBox prompt text to display, or null if no prompt text is displayed. Prompt text is not displayed in all circumstances, it is dependent upon the subclasses of ComboBoxBase to clarify when promptText will be shown. For example, in most cases prompt text will never be shown when a combo box is non-editable (that is, prompt text is only shown when user input is allowed via text input).
      Returns:
      the promptText property
      See Also:
    • getPromptText

      public final String getPromptText()
      Gets the value of the promptText property.
      Property description:
      The ComboBox prompt text to display, or null if no prompt text is displayed. Prompt text is not displayed in all circumstances, it is dependent upon the subclasses of ComboBoxBase to clarify when promptText will be shown. For example, in most cases prompt text will never be shown when a combo box is non-editable (that is, prompt text is only shown when user input is allowed via text input).
      Returns:
      the value of the promptText property
      See Also:
    • setPromptText

      public final void setPromptText(String value)
      Sets the value of the promptText property.
      Property description:
      The ComboBox prompt text to display, or null if no prompt text is displayed. Prompt text is not displayed in all circumstances, it is dependent upon the subclasses of ComboBoxBase to clarify when promptText will be shown. For example, in most cases prompt text will never be shown when a combo box is non-editable (that is, prompt text is only shown when user input is allowed via text input).
      Parameters:
      value - the value for the promptText property
      See Also:
    • armedProperty

      public final BooleanProperty armedProperty()
      Indicates that the ComboBox has been "armed" such that a mouse release will cause the ComboBox show() method to be invoked. This is subtly different from pressed. Pressed indicates that the mouse has been pressed on a Node and has not yet been released. arm however also takes into account whether the mouse is actually over the ComboBox and pressed.
      Returns:
      the armed property
      See Also:
    • isArmed

      public final boolean isArmed()
      Gets the value of the armed property.
      Property description:
      Indicates that the ComboBox has been "armed" such that a mouse release will cause the ComboBox show() method to be invoked. This is subtly different from pressed. Pressed indicates that the mouse has been pressed on a Node and has not yet been released. arm however also takes into account whether the mouse is actually over the ComboBox and pressed.
      Returns:
      the value of the armed property
      See Also:
    • onActionProperty

      public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty()
      The ComboBox action, which is invoked whenever the ComboBox value property is changed. This may be due to the value property being programmatically changed, when the user selects an item in a popup list or dialog, or, in the case of editable ComboBoxes, it may be when the user provides their own input (be that via a TextField or some other input mechanism.
      Returns:
      the on action property
      See Also:
    • setOnAction

      public final void setOnAction(EventHandler<ActionEvent> value)
      Sets the value of the onAction property.
      Property description:
      The ComboBox action, which is invoked whenever the ComboBox value property is changed. This may be due to the value property being programmatically changed, when the user selects an item in a popup list or dialog, or, in the case of editable ComboBoxes, it may be when the user provides their own input (be that via a TextField or some other input mechanism.
      Parameters:
      value - the value for the onAction property
      See Also:
    • getOnAction

      public final EventHandler<ActionEvent> getOnAction()
      Gets the value of the onAction property.
      Property description:
      The ComboBox action, which is invoked whenever the ComboBox value property is changed. This may be due to the value property being programmatically changed, when the user selects an item in a popup list or dialog, or, in the case of editable ComboBoxes, it may be when the user provides their own input (be that via a TextField or some other input mechanism.
      Returns:
      the value of the onAction property
      See Also:
    • onShowingProperty

      public final ObjectProperty<EventHandler<Event>> onShowingProperty()
      Called just prior to the ComboBoxBase popup/display being shown.
      Returns:
      the onShowing property
      Since:
      JavaFX 2.2
      See Also:
    • setOnShowing

      public final void setOnShowing(EventHandler<Event> value)
      Sets the value of the onShowing property.
      Property description:
      Called just prior to the ComboBoxBase popup/display being shown.
      Parameters:
      value - the value for the onShowing property
      Since:
      JavaFX 2.2
      See Also:
    • getOnShowing

      public final EventHandler<Event> getOnShowing()
      Gets the value of the onShowing property.
      Property description:
      Called just prior to the ComboBoxBase popup/display being shown.
      Returns:
      the value of the onShowing property
      Since:
      JavaFX 2.2
      See Also:
    • onShownProperty

      public final ObjectProperty<EventHandler<Event>> onShownProperty()
      Called just after the ComboBoxBase popup/display is shown.
      Returns:
      the onShown property
      Since:
      JavaFX 2.2
      See Also:
    • setOnShown

      public final void setOnShown(EventHandler<Event> value)
      Sets the value of the onShown property.
      Property description:
      Called just after the ComboBoxBase popup/display is shown.
      Parameters:
      value - the value for the onShown property
      Since:
      JavaFX 2.2
      See Also:
    • getOnShown

      public final EventHandler<Event> getOnShown()
      Gets the value of the onShown property.
      Property description:
      Called just after the ComboBoxBase popup/display is shown.
      Returns:
      the value of the onShown property
      Since:
      JavaFX 2.2
      See Also:
    • onHidingProperty

      public final ObjectProperty<EventHandler<Event>> onHidingProperty()
      Called just prior to the ComboBox popup/display being hidden.
      Returns:
      the onHiding property
      Since:
      JavaFX 2.2
      See Also:
    • setOnHiding

      public final void setOnHiding(EventHandler<Event> value)
      Sets the value of the onHiding property.
      Property description:
      Called just prior to the ComboBox popup/display being hidden.
      Parameters:
      value - the value for the onHiding property
      Since:
      JavaFX 2.2
      See Also:
    • getOnHiding

      public final EventHandler<Event> getOnHiding()
      Gets the value of the onHiding property.
      Property description:
      Called just prior to the ComboBox popup/display being hidden.
      Returns:
      the value of the onHiding property
      Since:
      JavaFX 2.2
      See Also:
    • onHiddenProperty

      public final ObjectProperty<EventHandler<Event>> onHiddenProperty()
      Called just after the ComboBoxBase popup/display has been hidden.
      Returns:
      the onHidden property
      Since:
      JavaFX 2.2
      See Also:
    • setOnHidden

      public final void setOnHidden(EventHandler<Event> value)
      Sets the value of the onHidden property.
      Property description:
      Called just after the ComboBoxBase popup/display has been hidden.
      Parameters:
      value - the value for the onHidden property
      Since:
      JavaFX 2.2
      See Also:
    • getOnHidden

      public final EventHandler<Event> getOnHidden()
      Gets the value of the onHidden property.
      Property description:
      Called just after the ComboBoxBase popup/display has been hidden.
      Returns:
      the value of the onHidden property
      Since:
      JavaFX 2.2
      See Also:
    • show

      public void show()
      Requests that the ComboBox display the popup aspect of the user interface. As mentioned in the ComboBoxBase class javadoc, what is actually shown when this method is called is undefined, but commonly it is some form of popup or dialog window.
    • hide

      public void hide()
      Closes the popup / dialog that was shown when show() was called.
    • arm

      public void arm()
      Arms the ComboBox. An armed ComboBox will show a popup list on the next expected UI gesture. Note: This function is intended to be used by experts, primarily by those implementing new Skins or Behaviors. It is not common for developers or designers to access this function directly.
    • disarm

      public void disarm()
      Disarms the ComboBox. See arm(). Note: This function is intended to be used by experts, primarily by those implementing new Skins or Behaviors. It is not common for developers or designers to access this function directly.