Module javafx.controls
Package javafx.scene.control

## Class CheckMenuItem

- java.lang.Object
- - javafx.scene.control.MenuItem
  - - javafx.scene.control.CheckMenuItem

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

      public class CheckMenuItem
      extends MenuItem

  A `MenuItem` that can be toggled between selected and unselected states. It is intended that CheckMenuItem be used in conjunction with the `Menu` or `ContextMenu` controls.

  Creating and inserting a CheckMenuItem into a Menu is shown below.

      CheckMenuItem subsystem1 = new CheckMenuItem("Enabled");
      subsystem1.setOnAction(e -> System.out.println("subsystem1 #1 Enabled!"));

      Menu menu = new Menu("Subsystems");
      menu.getItems().add(subsystem1);
      MenuBar menuBar = new MenuBar(menu);

  Of course, the approach shown above separates out the definition of the CheckMenuItem from the Menu, but this needn't be so.

  To ascertain the current state of the CheckMenuItem, you should refer to the `selected` boolean. An example use case may be the following example:

      final checkMenuItem = new CheckMenuItem("Show Widget");
      subsystem1.setOnAction(e -> System.out.println("Show the widget!"));
      private final BooleanProperty widgetShowing();
      public final boolean isWidgetShowing() { return widgetShowing.get(); )
      public final void setWidgetShowing(boolean value) {
          widgetShowingProperty().set(value);
      }
      public final BooleanProperty widgetShowingProperty() {
          if (widgetShowing == null) {
              widgetShowing = new SimpleBooleanProperty(this, "widgetShowing", true);
          }
          return widgetShowing;
      }

      widgetShowing.bind(checkMenuItem.selected);

  Typically a CheckMenuItem will be rendered such that, when selected, it shows a check (or tick) mark in the area normally reserved for the MenuItem graphic. Of course, this will vary depending on the skin and styling specified.

  Since:
    JavaFX 2.0
  See Also:
    `Menu`, `MenuItem`, `RadioMenuItem`

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `BooleanProperty` | `selected` | Represents the current state of this CheckMenuItem.

    - ### Properties inherited from class javafx.scene.control.MenuItem

      `accelerator, disable, graphic, id, mnemonicParsing, onAction, onMenuValidation, parentMenu, parentPopup, style, text, visible`

  - ### Field Summary

    - ### Fields inherited from class javafx.scene.control.MenuItem

      `MENU_VALIDATION_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CheckMenuItem()` | * Constructors * *
    `CheckMenuItem​(String text)` | Constructs a CheckMenuItem and sets the display text with the specified text.
    `CheckMenuItem​(String text, Node graphic)` | Constructs a CheckMenuItem and sets the display text with the specified text and sets the graphic `Node` to the given node.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isSelected()` | Gets the value of the property selected.
    `BooleanProperty` | `selectedProperty()` | Represents the current state of this CheckMenuItem.
    `void` | `setSelected​(boolean value)` | Sets the value of the property selected.

    - ### Methods inherited from class javafx.scene.control.MenuItem

      `acceleratorProperty, addEventHandler, buildEventDispatchChain, disableProperty, fire, getAccelerator, getCssMetaData, getGraphic, getId, getOnAction, getOnMenuValidation, getParentMenu, getParentPopup, getProperties, getPseudoClassStates, getStyle, getStyleableNode, getStyleableParent, getStyleClass, getText, getTypeSelector, getUserData, graphicProperty, idProperty, isDisable, isMnemonicParsing, isVisible, mnemonicParsingProperty, onActionProperty, onMenuValidationProperty, parentMenuProperty, parentPopupProperty, removeEventHandler, setAccelerator, setDisable, setGraphic, setId, setMnemonicParsing, setOnAction, setOnMenuValidation, setParentMenu, setParentPopup, setStyle, setText, setUserData, setVisible, styleProperty, textProperty, toString, visibleProperty`

    - ### Methods inherited from class java.lang.Object

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

- - ### Property Detail

    - #### selected

          public final BooleanProperty selectedProperty

      Represents the current state of this CheckMenuItem. Bind to this to be informed whenever the user interacts with the CheckMenuItem (and causes the selected state to be toggled).
      Default value:
        false
      See Also:
        `isSelected()`, `setSelected(boolean)`

  - ### Constructor Detail

    - #### CheckMenuItem

          public CheckMenuItem()

      * Constructors * *

    - #### CheckMenuItem

          public CheckMenuItem​(String text)

      Constructs a CheckMenuItem and sets the display text with the specified text.
      Parameters:
        `text` - the display text

    - #### CheckMenuItem

          public CheckMenuItem​(String text,
                               Node graphic)

      Constructs a CheckMenuItem and sets the display text with the specified text and sets the graphic `Node` to the given node.
      Parameters:
        `text` - the display text
        `graphic` - the graphic Node

  - ### Method Detail

    - #### setSelected

          public final void setSelected​(boolean value)

      Sets the value of the property selected.
      Property description:
        Represents the current state of this CheckMenuItem. Bind to this to be informed whenever the user interacts with the CheckMenuItem (and causes the selected state to be toggled).
      Default value:
        false

    - #### isSelected

          public final boolean isSelected()

      Gets the value of the property selected.
      Property description:
        Represents the current state of this CheckMenuItem. Bind to this to be informed whenever the user interacts with the CheckMenuItem (and causes the selected state to be toggled).
      Default value:
        false

    - #### selectedProperty

          public final BooleanProperty selectedProperty()

      Represents the current state of this CheckMenuItem. Bind to this to be informed whenever the user interacts with the CheckMenuItem (and causes the selected state to be toggled).
      Default value:
        false
      See Also:
        `isSelected()`, `setSelected(boolean)`