- All Implemented Interfaces:
javafx.css.Styleable
,javafx.event.EventTarget
,javafx.scene.control.Skinnable
ComboBox
which selects an entry of
its item list based on keyboard input. The user can type letters or
digits on the keyboard and the control will attempt to
select the first item it can find with a matching prefix.
This will only be enabled, when the ComboBox
is not editable, so
this class will be setup as non editable by default.
This feature is available natively on the Windows combo box control, so many users have asked for it. There is a feature request to include this feature into JavaFX (Issue RT-18064). The class is published as part of ControlsFX to allow testing and feedback.
Example
Let's look at an example to clarify this. The combo box offers the items ["Aaaaa", "Abbbb", "Abccc", "Abcdd", "Abcde"]. The user now types "abc" in quick succession (and then stops typing). The combo box will select a new entry on every key pressed. The first entry it will select is "Aaaaa" since it is the first entry that starts with an "a" (case ignored). It will then select "Abbbb", since this is the first entry that started with "ab" and will finally settle for "Abccc".
Keys typed | Element selected | |
---|---|---|
a | Aaaaa | |
aaa | Aaaaa | |
ab | Abbbb | |
abc | Abccc | |
xyz | - |
If you want to modify an existing ComboBox
you can use the
PrefixSelectionCustomizer
directly to do this.
- See Also:
-
Property Summary
PropertiesTypePropertyDescriptionfinal javafx.beans.property.BooleanProperty
When allowed, the user can press on the back space to clear the current selection.final javafx.beans.property.BooleanProperty
When enabled, theComboBox
will display its popup upon focus gained.final javafx.beans.property.ObjectProperty
<BiFunction<javafx.scene.control.ComboBox, String, Optional>> Allows setting a custom search criteria, based on the control and the typed selection.final javafx.beans.property.IntegerProperty
Allows setting the delay until the current selection is reset, in ms.Properties inherited from class javafx.scene.control.ComboBox
buttonCell, cellFactory, converter, editor, items, placeholder, selectionModel, visibleRowCount
Properties inherited from class javafx.scene.control.ComboBoxBase
armed, editable, onAction, onHidden, onHiding, onShowing, onShown, promptText, showing, value
Properties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltip
Properties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
Properties inherited from class javafx.scene.Parent
needsLayout
Properties inherited from 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 inherited from class javafx.scene.control.ComboBoxBase
ON_HIDDEN, ON_HIDING, ON_SHOWING, ON_SHOWN
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a non editableComboBox
with the "prefix selection" feature installed. -
Method Summary
Modifier and TypeMethodDescriptionfinal javafx.beans.property.BooleanProperty
When allowed, the user can press on the back space to clear the current selection.final javafx.beans.property.BooleanProperty
When enabled, theComboBox
will display its popup upon focus gained.final BiFunction
<javafx.scene.control.ComboBox, String, Optional> Gets the value of thelookup
property.final int
Gets the value of thetypingDelay
property.final boolean
Gets the value of thebackSpaceAllowed
property.final boolean
Gets the value of thedisplayOnFocusedEnabled
property.final javafx.beans.property.ObjectProperty
<BiFunction<javafx.scene.control.ComboBox, String, Optional>> Allows setting a custom search criteria, based on the control and the typed selection.final void
setBackSpaceAllowed
(boolean value) Sets the value of thebackSpaceAllowed
property.final void
setDisplayOnFocusedEnabled
(boolean value) Sets the value of thedisplayOnFocusedEnabled
property.final void
setLookup
(BiFunction<javafx.scene.control.ComboBox, String, Optional> value) Sets the value of thelookup
property.final void
setTypingDelay
(int value) Sets the value of thetypingDelay
property.final javafx.beans.property.IntegerProperty
Allows setting the delay until the current selection is reset, in ms.Methods inherited from class javafx.scene.control.ComboBox
buttonCellProperty, cancelEdit, cellFactoryProperty, commitValue, converterProperty, createDefaultSkin, editorProperty, getButtonCell, getCellFactory, getConverter, getEditor, getItems, getPlaceholder, getSelectionModel, getVisibleRowCount, itemsProperty, placeholderProperty, queryAccessibleAttribute, selectionModelProperty, setButtonCell, setCellFactory, setConverter, setItems, setPlaceholder, setSelectionModel, setVisibleRowCount, visibleRowCountProperty
Methods inherited from class javafx.scene.control.ComboBoxBase
arm, armedProperty, disarm, editableProperty, executeAccessibleAction, 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 inherited from class javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, 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 inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
Methods inherited from 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, 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, getStyleClass, 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, 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, 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 inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
displayOnFocusedEnabled
public final javafx.beans.property.BooleanProperty displayOnFocusedEnabledPropertyWhen enabled, theComboBox
will display its popup upon focus gained. Default is false- See Also:
-
backSpaceAllowed
public final javafx.beans.property.BooleanProperty backSpaceAllowedPropertyWhen allowed, the user can press on the back space to clear the current selection. Default is false- See Also:
-
typingDelay
public final javafx.beans.property.IntegerProperty typingDelayPropertyAllows setting the delay until the current selection is reset, in ms. Default is 500 ms- See Also:
-
lookup
public final javafx.beans.property.ObjectProperty<BiFunction<javafx.scene.control.ComboBox,String, lookupPropertyOptional>> Allows setting a custom search criteria, based on the control and the typed selection. The default criteria searchs for the first matching item that starts with the typed selection, being case insenstitive.- See Also:
-
-
Constructor Details
-
PrefixSelectionComboBox
public PrefixSelectionComboBox()Create a non editableComboBox
with the "prefix selection" feature installed.
-
-
Method Details
-
isDisplayOnFocusedEnabled
public final boolean isDisplayOnFocusedEnabled()Gets the value of thedisplayOnFocusedEnabled
property.- Property description:
- When enabled, the
ComboBox
will display its popup upon focus gained. Default is false - Returns:
- the value of the
displayOnFocusedEnabled
property - See Also:
-
setDisplayOnFocusedEnabled
public final void setDisplayOnFocusedEnabled(boolean value) Sets the value of thedisplayOnFocusedEnabled
property.- Property description:
- When enabled, the
ComboBox
will display its popup upon focus gained. Default is false - Parameters:
value
- the value for thedisplayOnFocusedEnabled
property- See Also:
-
displayOnFocusedEnabledProperty
public final javafx.beans.property.BooleanProperty displayOnFocusedEnabledProperty()When enabled, theComboBox
will display its popup upon focus gained. Default is false- Returns:
- the
displayOnFocusedEnabled
property - See Also:
-
isBackSpaceAllowed
public final boolean isBackSpaceAllowed()Gets the value of thebackSpaceAllowed
property.- Property description:
- When allowed, the user can press on the back space to clear the current selection. Default is false
- Returns:
- the value of the
backSpaceAllowed
property - See Also:
-
setBackSpaceAllowed
public final void setBackSpaceAllowed(boolean value) Sets the value of thebackSpaceAllowed
property.- Property description:
- When allowed, the user can press on the back space to clear the current selection. Default is false
- Parameters:
value
- the value for thebackSpaceAllowed
property- See Also:
-
backSpaceAllowedProperty
public final javafx.beans.property.BooleanProperty backSpaceAllowedProperty()When allowed, the user can press on the back space to clear the current selection. Default is false- Returns:
- the
backSpaceAllowed
property - See Also:
-
getTypingDelay
public final int getTypingDelay()Gets the value of thetypingDelay
property.- Property description:
- Allows setting the delay until the current selection is reset, in ms. Default is 500 ms
- Returns:
- the value of the
typingDelay
property - See Also:
-
setTypingDelay
public final void setTypingDelay(int value) Sets the value of thetypingDelay
property.- Property description:
- Allows setting the delay until the current selection is reset, in ms. Default is 500 ms
- Parameters:
value
- the value for thetypingDelay
property- See Also:
-
typingDelayProperty
public final javafx.beans.property.IntegerProperty typingDelayProperty()Allows setting the delay until the current selection is reset, in ms. Default is 500 ms- Returns:
- the
typingDelay
property - See Also:
-
getLookup
Gets the value of thelookup
property.- Property description:
- Allows setting a custom search criteria, based on the control and the typed selection. The default criteria searchs for the first matching item that starts with the typed selection, being case insenstitive.
- Returns:
- the value of the
lookup
property - See Also:
-
setLookup
Sets the value of thelookup
property.- Property description:
- Allows setting a custom search criteria, based on the control and the typed selection. The default criteria searchs for the first matching item that starts with the typed selection, being case insenstitive.
- Parameters:
value
- the value for thelookup
property- See Also:
-
lookupProperty
public final javafx.beans.property.ObjectProperty<BiFunction<javafx.scene.control.ComboBox,String, lookupProperty()Optional>> Allows setting a custom search criteria, based on the control and the typed selection. The default criteria searchs for the first matching item that starts with the typed selection, being case insenstitive.- Returns:
- the
lookup
property - See Also:
-