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.setIndeterminate(false);

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 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
`final 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`.
`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.
`Object`
`queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)`
This method is called by the assistive technology to request the value for an attribute.
`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 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)`
  - `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`

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