javax.swing

## Class JCheckBoxMenuItem

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.AbstractButton
        - - javax.swing.JMenuItem
          - - javax.swing.JCheckBoxMenuItem

All Implemented Interfaces:
  ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants

    public class JCheckBoxMenuItem
    extends JMenuItem
    implements SwingConstants, Accessible

A menu item that can be selected or deselected. If selected, the menu item typically appears with a checkmark next to it. If unselected or deselected, the menu item appears without a checkmark. Like a regular menu item, a check box menu item can have either text or a graphic icon associated with it, or both.

Either `isSelected`/`setSelected` or `getState`/`setState` can be used to determine/specify the menu item's selection state. The preferred methods are `isSelected` and `setSelected`, which work for all menus and buttons. The `getState` and `setState` methods exist for compatibility with other component sets.

Menu items can be configured, and to some degree controlled, by `Action`s. Using an `Action` with a menu item has many benefits beyond directly configuring a menu item. Refer to Swing Components Supporting `Action` for more details, and you can find more information in How to Use Actions, a section in The Java Tutorial.

For further information and examples of using check box menu items, see How to Use Menus, a section in The Java Tutorial.

Warning: Swing is not thread safe. For more information see Swing's Threading Policy.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the `java.beans` package. Please see `XMLEncoder`.

### Nested Class Summary

Nested Classes
`protected class` `JCheckBoxMenuItem.AccessibleJCheckBoxMenuItem` This class implements accessibility support for the `JCheckBoxMenuItem` class.

### Nested classes/interfaces inherited from class javax.swing.JMenuItem

`JMenuItem.AccessibleJMenuItem`

### Nested classes/interfaces inherited from class javax.swing.AbstractButton

`AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener`

### Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

### Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

### Field Summary

### Fields inherited from class javax.swing.AbstractButton

`actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY`

### Fields inherited from class javax.swing.JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class java.awt.Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface javax.swing.SwingConstants

`BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Constructor Summary

Constructors
Constructor and Description
`JCheckBoxMenuItem()` Creates an initially unselected check box menu item with no set text or icon.
`JCheckBoxMenuItem(Action a)` Creates a menu item whose properties are taken from the Action supplied.
`JCheckBoxMenuItem(Icon icon)` Creates an initially unselected check box menu item with an icon.
`JCheckBoxMenuItem(String text)` Creates an initially unselected check box menu item with text.
`JCheckBoxMenuItem(String text, boolean b)` Creates a check box menu item with the specified text and selection state.
`JCheckBoxMenuItem(String text, Icon icon)` Creates an initially unselected check box menu item with the specified text and icon.
`JCheckBoxMenuItem(String text, Icon icon, boolean b)` Creates a check box menu item with the specified text, icon, and selection state.

### Method Summary

All Methods Instance Methods Concrete Methods
`AccessibleContext` `getAccessibleContext()` Gets the AccessibleContext associated with this JCheckBoxMenuItem.
`Object[]` `getSelectedObjects()` Returns an array (length 1) containing the check box menu item label or null if the check box is not selected.
`boolean` `getState()` Returns the selected-state of the item.
`String` `getUIClassID()` Returns the name of the L&F class that renders this component.
`protected String` `paramString()` Returns a string representation of this JCheckBoxMenuItem.
`void` `setState(boolean b)` Sets the selected-state of the item.

### Methods inherited from class javax.swing.JMenuItem

`actionPropertyChanged, addMenuDragMouseListener, addMenuKeyListener, configurePropertiesFromAction, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, getComponent, getMenuDragMouseListeners, getMenuKeyListeners, getSubElements, init, isArmed, menuSelectionChanged, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, removeMenuDragMouseListener, removeMenuKeyListener, setAccelerator, setArmed, setEnabled, setModel, setUI, updateUI`

### Methods inherited from class javax.swing.AbstractButton

`addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

### Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

### Constructor Detail

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem()

Creates an initially unselected check box menu item with no set text or icon.

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem(Icon icon)

Creates an initially unselected check box menu item with an icon.

Parameters:
  `icon` - the icon of the CheckBoxMenuItem.

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem(String text)

Creates an initially unselected check box menu item with text.

Parameters:
  `text` - the text of the CheckBoxMenuItem

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem(Action a)

Creates a menu item whose properties are taken from the Action supplied.

Since:
  1.3

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem(String text,
                             Icon icon)

Creates an initially unselected check box menu item with the specified text and icon.

Parameters:
  `text` - the text of the CheckBoxMenuItem
  `icon` - the icon of the CheckBoxMenuItem

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem(String text,
                             boolean b)

Creates a check box menu item with the specified text and selection state.

Parameters:
  `text` - the text of the check box menu item.
  `b` - the selected state of the check box menu item

#### JCheckBoxMenuItem

    public JCheckBoxMenuItem(String text,
                             Icon icon,
                             boolean b)

Creates a check box menu item with the specified text, icon, and selection state.

Parameters:
  `text` - the text of the check box menu item
  `icon` - the icon of the check box menu item
  `b` - the selected state of the check box menu item

### Method Detail

#### getUIClassID

    public String getUIClassID()

Returns the name of the L&F class that renders this component.

Overrides:
  `getUIClassID` in class `JMenuItem`
Returns:
  "CheckBoxMenuItemUI"
See Also:
  `JComponent.getUIClassID()`, `UIDefaults.getUI(javax.swing.JComponent)`

#### getState

    public boolean getState()

Returns the selected-state of the item. This method exists for AWT compatibility only. New code should use isSelected() instead.

Returns:
  true if the item is selected

#### setState

    public void setState(boolean b)

Sets the selected-state of the item. This method exists for AWT compatibility only. New code should use setSelected() instead.

Parameters:
  `b` - a boolean value indicating the item's selected-state, where true=selected

#### getSelectedObjects

    public Object[] getSelectedObjects()

Returns an array (length 1) containing the check box menu item label or null if the check box is not selected.

Specified by:
  `getSelectedObjects` in interface `ItemSelectable`
Overrides:
  `getSelectedObjects` in class `AbstractButton`
Returns:
  an array containing one Object -- the text of the menu item -- if the item is selected; otherwise null

#### paramString

    protected String paramString()

Returns a string representation of this JCheckBoxMenuItem. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be `null`.

Overrides:
  `paramString` in class `JMenuItem`
Returns:
  a string representation of this JCheckBoxMenuItem.

#### getAccessibleContext

    public AccessibleContext getAccessibleContext()

Gets the AccessibleContext associated with this JCheckBoxMenuItem. For JCheckBoxMenuItems, the AccessibleContext takes the form of an AccessibleJCheckBoxMenuItem. A new AccessibleJCheckBoxMenuItem instance is created if necessary.

Specified by:
  `getAccessibleContext` in interface `Accessible`
Overrides:
  `getAccessibleContext` in class `JMenuItem`
Returns:
  an AccessibleJCheckBoxMenuItem that serves as the AccessibleContext of this AccessibleJCheckBoxMenuItem