Module javafx.controls
Package javafx.scene.control

# Class CheckBox

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.Labeled
javafx.scene.control.ButtonBase
javafx.scene.control.CheckBox

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

    public class CheckBox
    extends ButtonBase

A tri-state selection Control typically skinned as a box with a checkmark or tick mark when checked. A CheckBox control can be in one of three states:

- checked: indeterminate == false, checked == true
- unchecked: indeterminate == false, checked == false
- undefined: indeterminate == true

If a CheckBox is checked, then it is also by definition defined. When checked the CheckBox is typically rendered with a "check" or "tick" mark. A CheckBox is in this state if selected is true and indeterminate is false.

A CheckBox is unchecked if selected is false and indeterminate is false.

A CheckBox is undefined if indeterminate is true, regardless of the state of selected. A typical rendering would be with a minus or dash, to indicate an undefined or indeterminate state of the CheckBox. This is convenient for constructing tri-state checkbox based trees, for example, where undefined check boxes typically mean "inherit settings from the parent".

The allowIndeterminate variable, if true, allows the user to cycle through the undefined state. If false, the CheckBox is not in the indeterminate state, and the user is allowed to change only the checked state.

Example:

     CheckBox cb = new CheckBox("a checkbox");
     cb.setSelected(true);

MnemonicParsing is enabled by default for CheckBox.

Since:
  JavaFX 2.0

- ## Property Summary

  Properties
  Type | Property | Description
  --- | --- | ---
  `BooleanProperty` | `allowIndeterminate` | Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined.
  `BooleanProperty` | `indeterminate` | Determines whether the CheckBox is in the indeterminate state.
  `BooleanProperty` | `selected` | Indicates whether this CheckBox is checked.

  ### Properties inherited from class javafx.scene.control.ButtonBase

  `armed, onAction`

  ### Properties inherited from class javafx.scene.control.Labeled

  `alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText`

  ### 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.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
  --- | ---
  `CheckBox()` | Creates a check box with an empty string for its label.
  `CheckBox​(String text)` | Creates a check box with the specified text as its label.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `BooleanProperty` | `allowIndeterminateProperty()` | Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined.
  `protected Skin<?>` | `createDefaultSkin()` | Create a new instance of the default skin for this control.
  `void` | `fire()` | Toggles the state of the `CheckBox`.
  `BooleanProperty` | `indeterminateProperty()` | Determines whether the CheckBox is in the indeterminate state.
  `boolean` | `isAllowIndeterminate()` | Gets the value of the property allowIndeterminate.
  `boolean` | `isIndeterminate()` | Gets the value of the property indeterminate.
  `boolean` | `isSelected()` | Gets the value of the property selected.
  `Object` | `queryAccessibleAttribute​(AccessibleAttribute attribute, Object... parameters)` | This method is called by the assistive technology to request the value for an attribute.
  `BooleanProperty` | `selectedProperty()` | Indicates whether this CheckBox is checked.
  `void` | `setAllowIndeterminate​(boolean value)` | Sets the value of the property allowIndeterminate.
  `void` | `setIndeterminate​(boolean value)` | Sets the value of the property indeterminate.
  `void` | `setSelected​(boolean value)` | Sets the value of the property selected.

  ### Methods inherited from class javafx.scene.control.ButtonBase

  `arm, armedProperty, disarm, executeAccessibleAction, getOnAction, isArmed, onActionProperty, setOnAction`

  ### Methods inherited from class javafx.scene.control.Labeled

  `alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, getInitialAlignment, getLabelPadding, getLineSpacing, getText, getTextAlignment, getTextFill, getTextOverrun, graphicProperty, graphicTextGapProperty, isMnemonicParsing, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, toString, underlineProperty, wrapTextProperty`

  ### Methods inherited from class javafx.scene.control.Control

  `computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, 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, 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, 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

  - ### indeterminate

    public final BooleanProperty indeterminateProperty
    Determines whether the CheckBox is in the indeterminate state.
    See Also:
      `isIndeterminate()`, `setIndeterminate(boolean)`

  - ### selected

    public final BooleanProperty selectedProperty
    Indicates whether this CheckBox is checked.
    See Also:
      `isSelected()`, `setSelected(boolean)`

  - ### allowIndeterminate

    public final BooleanProperty allowIndeterminateProperty
    Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined. If `true` then all three states will be cycled through; if `false` then only checked and unchecked will be cycled.
    See Also:
      `isAllowIndeterminate()`, `setAllowIndeterminate(boolean)`

- ## Constructor Details

  - ### CheckBox

    public CheckBox()
    Creates a check box with an empty string for its label.

  - ### CheckBox

    public CheckBox​(String text)
    Creates a check box with the specified text as its label.
    Parameters:
      `text` - A text string for its label.

- ## Method Details

  - ### setIndeterminate

    public final void setIndeterminate​(boolean value)
    Sets the value of the property indeterminate.
    Property description:
      Determines whether the CheckBox is in the indeterminate state.

  - ### isIndeterminate

    public final boolean isIndeterminate()
    Gets the value of the property indeterminate.
    Property description:
      Determines whether the CheckBox is in the indeterminate state.

  - ### indeterminateProperty

    public final BooleanProperty indeterminateProperty()
    Determines whether the CheckBox is in the indeterminate state.
    See Also:
      `isIndeterminate()`, `setIndeterminate(boolean)`

  - ### setSelected

    public final void setSelected​(boolean value)
    Sets the value of the property selected.
    Property description:
      Indicates whether this CheckBox is checked.

  - ### isSelected

    public final boolean isSelected()
    Gets the value of the property selected.
    Property description:
      Indicates whether this CheckBox is checked.

  - ### selectedProperty

    public final BooleanProperty selectedProperty()
    Indicates whether this CheckBox is checked.
    See Also:
      `isSelected()`, `setSelected(boolean)`

  - ### setAllowIndeterminate

    public final void setAllowIndeterminate​(boolean value)
    Sets the value of the property allowIndeterminate.
    Property description:
      Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined. If `true` then all three states will be cycled through; if `false` then only checked and unchecked will be cycled.

  - ### isAllowIndeterminate

    public final boolean isAllowIndeterminate()
    Gets the value of the property allowIndeterminate.
    Property description:
      Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined. If `true` then all three states will be cycled through; if `false` then only checked and unchecked will be cycled.

  - ### allowIndeterminateProperty

    public final BooleanProperty allowIndeterminateProperty()
    Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined. If `true` then all three states will be cycled through; if `false` then only checked and unchecked will be cycled.
    See Also:
      `isAllowIndeterminate()`, `setAllowIndeterminate(boolean)`

  - ### fire

    public void fire()
    Toggles the state of the `CheckBox`. If allowIndeterminate is true, then each invocation of this function will advance the CheckBox through the states checked, unchecked, and undefined. If allowIndeterminate is false, then the CheckBox will only cycle through the checked and unchecked states, and forcing indeterminate to equal to false.
    Specified by:
      `fire` in class `ButtonBase`

  - ### createDefaultSkin

    protected Skin<?> createDefaultSkin()
    Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS `-fx-skin` or set explicitly in a sub-class with `setSkin(...)`.
    Overrides:
      `createDefaultSkin` in class `Control`
    Returns:
      new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.

  - ### queryAccessibleAttribute

    public Object queryAccessibleAttribute​(AccessibleAttribute attribute, Object... parameters)
    This method is called by the assistive technology to request the value for an attribute.

    This method is commonly overridden by subclasses to implement attributes that are required for a specific role.
    If a particular attribute is not handled, the superclass implementation must be called.

    Overrides:
      `queryAccessibleAttribute` in class `Control`
    Parameters:
      `attribute` - the requested attribute
      `parameters` - optional list of parameters
    Returns:
      the value for the requested attribute
    See Also:
      `AccessibleAttribute`