# 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
  `final BooleanProperty`
  `allowIndeterminate`
  Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined.
  `final BooleanProperty`
  `indeterminate`
  Determines whether the CheckBox is in the indeterminate state.
  `final BooleanProperty`
  `selected`
  Indicates whether this CheckBox is checked.

  ### Properties declared in class javafx.scene.control.ButtonBase

  `armed, onAction`

  ### Properties declared in class javafx.scene.control.Labeled

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

  ### Properties declared in class javafx.scene.control.Control

  `contextMenu, skin, tooltip`

  ### Properties declared in class javafx.scene.layout.Region

  `background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

  ### Properties declared in class javafx.scene.Parent

  `needsLayout`

  ### Properties declared in class javafx.scene.Node

  `accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, 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 declared in class javafx.scene.layout.Region

  `USE_COMPUTED_SIZE, USE_PREF_SIZE`

  ### Fields declared in 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
  `final BooleanProperty`
  `allowIndeterminateProperty()`
  Determines whether the user toggling the CheckBox should cycle through all three states: checked, unchecked, and undefined.
  `void`
  `fire()`
  Toggles the state of the `CheckBox`.
  `final BooleanProperty`
  `indeterminateProperty()`
  Determines whether the CheckBox is in the indeterminate state.
  `final boolean`
  `isAllowIndeterminate()`
  Gets the value of the `allowIndeterminate` property.
  `final boolean`
  `isIndeterminate()`
  Gets the value of the `indeterminate` property.
  `final boolean`
  `isSelected()`
  Gets the value of the `selected` property.
  `final BooleanProperty`
  `selectedProperty()`
  Indicates whether this CheckBox is checked.
  `final void`
  `setAllowIndeterminate(boolean value)`
  Sets the value of the `allowIndeterminate` property.
  `final void`
  `setIndeterminate(boolean value)`
  Sets the value of the `indeterminate` property.
  `final void`
  `setSelected(boolean value)`
  Sets the value of the `selected` property.

  ### Methods declared in class javafx.scene.control.ButtonBase

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

  ### Methods declared in 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, isTextTruncated, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, textTruncatedProperty, underlineProperty, wrapTextProperty`

  ### Methods declared in class javafx.scene.control.Control

  `computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty`

  ### Methods declared in class javafx.scene.layout.Region

  `backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computePrefHeight, computePrefWidth, 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 declared in class javafx.scene.Parent

  `getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds`

  ### Methods declared in 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, 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, isFocusVisible, isFocusWithin, 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, lookup, 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, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, 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 declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods declared in 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)`
      - `indeterminateProperty()`

  - ### selected

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

  - ### 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)`
      - `allowIndeterminateProperty()`

- ## 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 `indeterminate` property.
    Property description:
      Determines whether the CheckBox is in the indeterminate state.
    Parameters:
      `value` - the value for the `indeterminate` property
    See Also:
      - `isIndeterminate()`
      - `indeterminateProperty()`

  - ### isIndeterminate

    public final boolean isIndeterminate()
    Gets the value of the `indeterminate` property.
    Property description:
      Determines whether the CheckBox is in the indeterminate state.
    Returns:
      the value of the `indeterminate` property
    See Also:
      - `setIndeterminate(boolean)`
      - `indeterminateProperty()`

  - ### indeterminateProperty

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

  - ### setSelected

    public final void setSelected(boolean value)
    Sets the value of the `selected` property.
    Property description:
      Indicates whether this CheckBox is checked.
    Parameters:
      `value` - the value for the `selected` property
    See Also:
      - `isSelected()`
      - `selectedProperty()`

  - ### isSelected

    public final boolean isSelected()
    Gets the value of the `selected` property.
    Property description:
      Indicates whether this CheckBox is checked.
    Returns:
      the value of the `selected` property
    See Also:
      - `setSelected(boolean)`
      - `selectedProperty()`

  - ### selectedProperty

    public final BooleanProperty selectedProperty()
    Indicates whether this CheckBox is checked.
    Returns:
      the `selected` property
    See Also:
      - `isSelected()`
      - `setSelected(boolean)`

  - ### setAllowIndeterminate

    public final void setAllowIndeterminate(boolean value)
    Sets the value of the `allowIndeterminate` property.
    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.
    Parameters:
      `value` - the value for the `allowIndeterminate` property
    See Also:
      - `isAllowIndeterminate()`
      - `allowIndeterminateProperty()`

  - ### isAllowIndeterminate

    public final boolean isAllowIndeterminate()
    Gets the value of the `allowIndeterminate` property.
    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.
    Returns:
      the value of the `allowIndeterminate` property
    See Also:
      - `setAllowIndeterminate(boolean)`
      - `allowIndeterminateProperty()`

  - ### 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.
    Returns:
      the `allowIndeterminate` property
    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`