# Java: JCheckBox

## Description

A JCheckBox shows a small box that is either marked or unmarked. When you click on it, it changes from checked to unchecked or vice versa automatically. You don't have to do any programming for the checkbox to change.

There are two ways to use a Checkbox:

1. Use `addItemListener()` to call a method whenever the checkbox is changed (see example below).
2. Use `isSelected()` to test if a checkbox is checked.

## Constructors

Assume

       String text;    // label on text box.
       boolean state;  // initial state of checkbox.

       JCheckBox cb = new JCheckBox(text);
       JCheckBox cb = new JCheckBox(String text, state);

Icons can also be used.

## Common methods

Assume

       ItemListener iListener;
       boolean state;  // state of checkbox.

        cb.addItemListener(iListener);
        state = cb.isSeleted()  // tells whether box is checked
        cb.setSelected(state) // set checked state of box

## Example with listener

This example creates a checkbox (`ignoreCase`) that is already checked, and adds it to the JPanel (`content`). It sets the boolean variable (`ignore`) whenever the box state is changed by the user.

    boolean ignore = true;  // true if should ignore case
    . . .
    JCheckBox ignoreCase = new JCheckBox("Ignore Case", true);
    ignoreCase.addItemListener(
        new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                // Set "ignore" whenever box is checked or unchecked.
                ignore = (e.getStateChange() == ItemEvent.SELECTED);
            }
        }
    );
    content.add(ignoreCase);

## Example checking state

This example is similar to the above, but gets the state of the checkbox when the value is needed.

    JCheckBox ignoreCase;
    . . .
    //--- inside constructor
        JCheckBox ignoreCase = new JCheckBox("Ignore Case", true);
        content.add(ignoreCase);
        . . .

    //--- inside processing method, eg in button listener.
       if (ignoreCase.isSelected()) {
           . . .

Status: add sample image, mention icons, mention JCheckBoxMenuItem