Class CheckComboBox<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
org.controlsfx.control.CheckComboBox<T>
Type Parameters:
T - The type of the data in the ComboBox.
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

@DefaultProperty("items") public class CheckComboBox<T> extends javafx.scene.control.Control
A simple UI control that makes it possible to select zero or more items within a ComboBox-like control. Each row item shows a CheckBox, and the state of each row can be queried via the check model.
The title shown in the combobox is, by default, a concatenation of the selected items but this behaviour can be changed and it is possible to set a fixed title (see titleProperty() property), with or without an indication of how many items have been checked (see showCheckedCountProperty() property).

Screenshots

The following screenshot shows the CheckComboBox with some sample data:
Screenshot of CheckComboBox

The following screenshot shows the CheckComboBox with a fixed title and the indication of how many items have been checked:
Screenshot of CheckComboBox with number of checked items

Code Example:

To create the CheckComboBox shown in the screenshot, simply do the following:

 
 // create the data to show in the CheckComboBox 
 final ObservableList<String> strings = FXCollections.observableArrayList();
 for (int i = 0; i <= 100; i++) {
     strings.add("Item " + i);
 }
 
 // Create the CheckComboBox with the data 
 final CheckComboBox<String> checkComboBox = new CheckComboBox<String>(strings);
 
 // and listen to the relevant events (e.g. when the selected indices or 
 // selected items change).
 checkComboBox.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {
     public void onChanged(ListChangeListener.Change<? extends String> c) {
          while(c.next()) {
              //do something with changes here
          }
          System.out.println(checkComboBox.getCheckModel().getCheckedItems());
     }
 });
 }
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<IndexedCheckModel<T>>
    The check model provides the API through which it is possible to check single or multiple items within a CheckComboBox, as well as inspect which items have been checked by the user.
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<T>>
    A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
    final javafx.beans.property.BooleanProperty
    A boolean to decide if the information of how many items are checked should be shown beside the fixed title.
    final javafx.beans.property.StringProperty
    The title to use for this control.

    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
    Modifier and Type
    Field
    Description
    static final String
    * Static fields * *

    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

    Constructors
    Constructor
    Description
    Creates a new CheckComboBox instance with an empty list of choices.
    CheckComboBox(javafx.collections.ObservableList<T> items)
    Creates a new CheckComboBox instance with the given items available as choices.
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ObjectProperty<IndexedCheckModel<T>>
    The check model provides the API through which it is possible to check single or multiple items within a CheckComboBox, as well as inspect which items have been checked by the user.
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<T>>
    A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
    protected javafx.scene.control.Skin<?>
    Returns the currently installed check model.
    final javafx.util.StringConverter<T>
    A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
    javafx.beans.property.BooleanProperty
    Returns the BooleanProperty for a given item index in the CheckComboBox.
    javafx.beans.property.BooleanProperty
    Returns the BooleanProperty for a given item in the CheckComboBox.
    javafx.collections.ObservableList<T>
    Represents the list of choices available to the user, from which they can select zero or more items.
    final String
    The title set for this control, if it has been set explicitly by the client.
    protected final String
    getUserAgentStylesheet(Class<?> clazz, String fileName)
    A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once.
    void
    Closes the popup / dialog that was shown when show() was called.
    final boolean
     
    final void
    Sets the 'check model' to be used in the CheckComboBox - this is the code that is responsible for representing the selected state of each CheckBox - that is, whether each CheckBox is checked or not (and not to be confused with the selection model concept, which is used in the ComboBox control to represent the selection state of each row)..
    final void
    setConverter(javafx.util.StringConverter<T> value)
    Sets the StringConverter to be used in the control.
    final void
    setShowCheckedCount(boolean value)
    Sets the value to use to decide whether the checked items count should be shown or not
    final void
    Sets the title to use.
    void
    Requests that the ComboBox display the popup aspect of the user interface.
    final javafx.beans.property.BooleanProperty
    A boolean to decide if the information of how many items are checked should be shown beside the fixed title.
    final javafx.beans.property.StringProperty
    The title to use for this control.

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, 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

    • checkModel

      public final javafx.beans.property.ObjectProperty<IndexedCheckModel<T>> checkModelProperty
      The check model provides the API through which it is possible to check single or multiple items within a CheckComboBox, as well as inspect which items have been checked by the user. Note that it has a generic type that must match the type of the CheckComboBox itself.
      See Also:
    • converter

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<T>> converterProperty
      A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
      See Also:
    • title

      public final javafx.beans.property.StringProperty titleProperty
      The title to use for this control. If a non null value is explicitly set by the client, then that string will be used, otherwise a title will be constructed concatenating the selected items
      See Also:
    • showCheckedCount

      public final javafx.beans.property.BooleanProperty showCheckedCountProperty
      A boolean to decide if the information of how many items are checked should be shown beside the fixed title. If a titleProperty() has been set and this property is set to true then a string like (3/10) would be shown when 3 items out of 10 are checked.
      This property has effect only if a fixed title has been set (see titleProperty()), otherwise the title is constructed with a concatenation of the selected items.
      See Also:
  • Field Details

    • COMBO_BOX_ROWS_TO_MEASURE_WIDTH_KEY

      public static final String COMBO_BOX_ROWS_TO_MEASURE_WIDTH_KEY
      * Static fields * *
      See Also:
  • Constructor Details

    • CheckComboBox

      public CheckComboBox()
      Creates a new CheckComboBox instance with an empty list of choices.
    • CheckComboBox

      public CheckComboBox(javafx.collections.ObservableList<T> items)
      Creates a new CheckComboBox instance with the given items available as choices.
      Parameters:
      items - The items to display within the CheckComboBox.
  • Method Details

    • getItems

      public javafx.collections.ObservableList<T> getItems()
      Represents the list of choices available to the user, from which they can select zero or more items.
    • getItemBooleanProperty

      public javafx.beans.property.BooleanProperty getItemBooleanProperty(int index)
      Returns the BooleanProperty for a given item index in the CheckComboBox. This is useful if you want to bind to the property.
    • getItemBooleanProperty

      public javafx.beans.property.BooleanProperty getItemBooleanProperty(T item)
      Returns the BooleanProperty for a given item in the CheckComboBox. This is useful if you want to bind to the property.
    • setCheckModel

      public final void setCheckModel(IndexedCheckModel<T> value)
      Sets the 'check model' to be used in the CheckComboBox - this is the code that is responsible for representing the selected state of each CheckBox - that is, whether each CheckBox is checked or not (and not to be confused with the selection model concept, which is used in the ComboBox control to represent the selection state of each row)..
    • getCheckModel

      public final IndexedCheckModel<T> getCheckModel()
      Returns the currently installed check model.
    • checkModelProperty

      public final javafx.beans.property.ObjectProperty<IndexedCheckModel<T>> checkModelProperty()
      The check model provides the API through which it is possible to check single or multiple items within a CheckComboBox, as well as inspect which items have been checked by the user. Note that it has a generic type that must match the type of the CheckComboBox itself.
    • converterProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<T>> converterProperty()
      A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
      Returns:
      the converter property
      See Also:
    • setConverter

      public final void setConverter(javafx.util.StringConverter<T> value)
      Sets the StringConverter to be used in the control.
      Parameters:
      value - A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
    • getConverter

      public final javafx.util.StringConverter<T> getConverter()
      A StringConverter that, given an object of type T, will return a String that can be used to represent the object visually.
    • titleProperty

      public final javafx.beans.property.StringProperty titleProperty()
      The title to use for this control. If a non null value is explicitly set by the client, then that string will be used, otherwise a title will be constructed concatenating the selected items
      Returns:
      the title property
      See Also:
    • setTitle

      public final void setTitle(String value)
      Sets the title to use. If it is not null it will be used as title, otherwise title will be constructed by the skin
      Parameters:
      value - the string to use as title
    • getTitle

      public final String getTitle()
      The title set for this control, if it has been set explicitly by the client.
      Returns:
      the title if it has been set, null otherwise
    • show

      public void show()
      Requests that the ComboBox display the popup aspect of the user interface.
    • hide

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

      protected javafx.scene.control.Skin<?> createDefaultSkin()
      Overrides:
      createDefaultSkin in class javafx.scene.control.Control
    • showCheckedCountProperty

      public final javafx.beans.property.BooleanProperty showCheckedCountProperty()
      A boolean to decide if the information of how many items are checked should be shown beside the fixed title. If a titleProperty() has been set and this property is set to true then a string like (3/10) would be shown when 3 items out of 10 are checked.
      This property has effect only if a fixed title has been set (see titleProperty()), otherwise the title is constructed with a concatenation of the selected items.
      Returns:
      if the count should be shown
      See Also:
    • setShowCheckedCount

      public final void setShowCheckedCount(boolean value)
      Sets the value to use to decide whether the checked items count should be shown or not
      Parameters:
      value - the value to set
    • isShowCheckedCount

      public final boolean isShowCheckedCount()
      Returns:
      whether the checked items count is set to be shown beside a fixed title
    • getUserAgentStylesheet

      protected final String getUserAgentStylesheet(Class<?> clazz, String fileName)
      A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once. Caches the external form of the resource.
      Parameters:
      clazz - the class used for the resource lookup
      fileName - the name of the user agent stylesheet
      Returns:
      the external form of the user agent stylesheet (the path)