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 Detail

    - #### 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 Detail

    - #### 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 Detail

    - #### 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`