Skip to content

JCheckBox Java Swing CheckBox Example

Ramesh Fadatare edited this page Jul 9, 2019 · 1 revision

The javax.swing.JCheckBox class provides a box with a label that has two states: on and off. If the check box is selected, it is represented by a tick in a box. A checkbox can be used to show or hide a splash screen at startup, toggle visibility of a toolbar, etc.

With JCheckBox it is possible to use an ActionListener or an ItemListener. Usually, the latter option is used. ItemListener is the interface for receiving item events. The class that is interested in processing an item event, e.g. the observer, implements this interface. The observer object is registered with a component using the component's addItemListener() method. When an item selection event occurs, the observer's itemStateChanged() method is invoked.

JCheckBox - Java Swing CheckBox Example

This code example shows or hides the title of the window depending on whether the checkbox is selected.

package net.sourcecodeexamples.swingexample.components2;

import javax.swing.GroupLayout;

import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.EventQueue;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class CheckBoxExample extends JFrame implements ItemListener {

    private static final long serialVersionUID = 1 L;

    private void initializeUI() {

        JCheckBox cb = new JCheckBox("Show Title", true);
        cb.addItemListener(this);

        createLayout(cb);

        setSize(280, 200);
        setTitle("JCheckBox Example");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void itemStateChanged(ItemEvent e) {

        int sel = e.getStateChange();

        if (sel == ItemEvent.SELECTED) {

            setTitle("JCheckBox");
        } else {

            setTitle("");
        }
    }

    private void createLayout(JComponent...arg) {

        JPanel pane = (JPanel) getContentPane();
        GroupLayout gl = new GroupLayout(pane);
        pane.setLayout(gl);

        gl.setAutoCreateContainerGaps(true);

        gl.setHorizontalGroup(gl.createParallelGroup().addComponent(arg[0]));

        gl.setVerticalGroup(gl.createSequentialGroup().addComponent(arg[0]));
    }

    public static void main(String[] args) {

        EventQueue.invokeLater(() - > {
            CheckBoxExample checkBoxExample = new CheckBoxExample();
            checkBoxExample.initializeUI();
            checkBoxExample.setVisible(true);
        });
    }
}

Let's understand above Java program. In above example, the CheckBoxExample class implements the ItemListener. This means that this class has to provide the itemStateChanged() method in which we react to item selection events.

public class CheckBoxEx extends JFrame
        implements ItemListener {

JCheckBox is created with the following code. This constructor takes a text and the state of the checkbox as parameters. The checkbox is initially selected.

var checkbox = new JCheckBox("Show title", true);

The CheckBoxExample class is registered to be the observer of the selection events of the checkbox.

cb.addItemListener(this);

We call the ItemEvent's getStateChange() method to determine the state of the check box.

@Override
public void itemStateChanged(ItemEvent e) {
    
    int sel = e.getStateChange();
    
    if (sel == ItemEvent.SELECTED) {
        
        setTitle("JCheckBox");
    } else {
        
        setTitle("");
    }
}  

Output

Clone this wiki locally