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
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
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:
The following screenshot shows the CheckComboBox with a fixed title and the
indication of how many items have been checked:
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
PropertiesTypePropertyDescriptionfinal 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>> AStringConverter
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
FieldsFields 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
ConstructorsConstructorDescriptionCreates 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 TypeMethodDescriptionfinal 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>> AStringConverter
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
<?> final IndexedCheckModel
<T> Returns the currently installed check model.final javafx.util.StringConverter
<T> AStringConverter
that, given an object of type T, will return a String that can be used to represent the object visually.javafx.beans.property.BooleanProperty
getItemBooleanProperty
(int index) Returns theBooleanProperty
for a given item index in the CheckComboBox.javafx.beans.property.BooleanProperty
getItemBooleanProperty
(T item) Returns theBooleanProperty
for a given item in the CheckComboBox.javafx.collections.ObservableList
<T> getItems()
Represents the list of choices available to the user, from which they can select zero or more items.final String
getTitle()
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
hide()
Closes the popup / dialog that was shown whenshow()
was called.final boolean
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 eachCheckBox
- that is, whether eachCheckBox
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 theStringConverter
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 notfinal void
Sets the title to use.void
show()
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
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
AStringConverter
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 titlePropertyThe 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 showCheckedCountPropertyA boolean to decide if the information of how many items are checked should be shown beside the fixed title. If atitleProperty()
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 (seetitleProperty()
), otherwise the title is constructed with a concatenation of the selected items.- See Also:
-
-
Field Details
-
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
Creates a new CheckComboBox instance with the given items available as choices.- Parameters:
items
- The items to display within the CheckComboBox.
-
-
Method Details
-
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 theBooleanProperty
for a given item index in the CheckComboBox. This is useful if you want to bind to the property. -
getItemBooleanProperty
Returns theBooleanProperty
for a given item in the CheckComboBox. This is useful if you want to bind to the property. -
setCheckModel
Sets the 'check model' to be used in the CheckComboBox - this is the code that is responsible for representing the selected state of eachCheckBox
- that is, whether eachCheckBox
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
Returns the currently installed check model. -
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()AStringConverter
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
Sets theStringConverter
to be used in the control.- Parameters:
value
- AStringConverter
that, given an object of type T, will return a String that can be used to represent the object visually.
-
getConverter
AStringConverter
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
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
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 whenshow()
was called. -
createDefaultSkin
protected javafx.scene.control.Skin<?> createDefaultSkin()- Overrides:
createDefaultSkin
in classjavafx.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 atitleProperty()
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 (seetitleProperty()
), 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
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 lookupfileName
- the name of the user agent stylesheet- Returns:
- the external form of the user agent stylesheet (the path)
-