Introduction

In this article we discuss how to create a checkbox in Java.

What is checkbox

Simply called a selection box, a check box is a type of square box where the user can click to select there choice. Using a checkbox he can select multiple values at a time.

The following figure shows some sample checkboxes:

checkbox.jpg

Example

In this example; we create four checkboxes to select the colors of our choice. Now for creating checkboxes we use AWT (Abstract Window Toolkit) and Swing components.

Procedure to followed

Step 1: We create four checkboxes to provide the user a choice of selecting multiple choices.

        JPanel overallGUI = new JPanel();       

        JPanel chkBxPanl = new JPanel();

        chkBxPanl.setLayout(new BoxLayout(chkBxPanl, BoxLayout.PAGE_AXIS));

        chkBxPanl.add(Box.createRigidArea(new Dimension(15,5)));

        redbtn = new JCheckBox("Red color");

        redbtn.setSelected(true);   

        chkBxPanl.add(redbtn);

        chkBxPanl.add(Box.createHorizontalGlue());       

        bluebtn = new JCheckBox("Blue color");

        chkBxPanl.add(bluebtn);

        chkBxPanl.add(Box.createHorizontalGlue());       

        greenbtn = new JCheckBox("Green color");

        chkBxPanl.add(greenbtn);

        chkBxPanl.add(Box.createHorizontalGlue());       

        yellowbtn = new JCheckBox("Yellow color");

        chkBxPanl.add(yellowbtn);

        chkBxPanl.add(Box.createRigidArea(new Dimension(15, 5)));  

Step 2: Now we create a simple Panel to display all the four checkboxes we created.

        JPanel bxPanl = new JPanel(new GridLayout(3, 3, 23, 23));       

        JPanel redBx = squrPanl(Color.red, 55);

        JPanel blBx = squrPanl(Color.blue, 55);

        JPanel grnBx = squrPanl(Color.green, 55);

        JPanel yelwBx = squrPanl(Color.yellow, 55);   

Step 3: Now we hide all the boxes except the red button.

        grnBx.setVisible(false);

        blBx.setVisible(false);       

        yelwBx.setVisible(false);       

        bxPanl.add(redBx);

        bxPanl.add(blBx);

        bxPanl.add(grnBx);

        bxPanl.add(yelwBx);       

        overallGUI.add(chkBxPanl);

        overallGUI.add(bxPanl);       

        overallGUI.setOpaque(true);

        return overallGUI;

Step 4: Now we create a square panel and set their bounds.

private JPanel squrPanl(Color color, int size)

      {

        JPanel temporaryPanl = new JPanel();

        temporaryPanl.setBackground(color);

        temporaryPanl.setMinimumSize(new Dimension(size, size));

        temporaryPanl.setMaximumSize(new Dimension(size, size));

        temporaryPanl.setPreferredSize(new Dimension(size, size));

        return temporaryPanl;

      }

private static void showGUI()

      {

        JFrame.setDefaultLookAndFeelDecorated(true);

        JFrame frm = new JFrame("CheckBox");

        SwingCheckBxEx showdemo = new SwingCheckBxEx();

        frm.setContentPane(showdemo.shwCreatPnl());       

        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frm.pack();

        frm.setVisible(true);

      }

    public static void main(String[] args)

      {

        SwingUtilities.invokeLater(new Runnable()

          {

            public void run()

              {

                showGUI();

              }

          });

      }

  }

Complete codie

SwingCheckBxEx.java

import java.awt.*;

import javax.swing.*;

import java.awt.Color;

public class SwingCheckBxEx

  {   

    JCheckBox redbtn, bluebtn, greenbtn, yellowbtn;

    public JPanel shwCreatPnl ()

      {       

        JPanel overallGUI = new JPanel();       

        JPanel chkBxPanl = new JPanel();

        chkBxPanl.setLayout(new BoxLayout(chkBxPanl, BoxLayout.PAGE_AXIS));

        chkBxPanl.add(Box.createRigidArea(new Dimension(15,5)));

        redbtn = new JCheckBox("Red color");

        redbtn.setSelected(true);   

        chkBxPanl.add(redbtn);

        chkBxPanl.add(Box.createHorizontalGlue());       

        bluebtn = new JCheckBox("Blue color");

        chkBxPanl.add(bluebtn);

        chkBxPanl.add(Box.createHorizontalGlue());       

        greenbtn = new JCheckBox("Green color");

        chkBxPanl.add(greenbtn);

        chkBxPanl.add(Box.createHorizontalGlue());       

        yellowbtn = new JCheckBox("Yellow color");

        chkBxPanl.add(yellowbtn);

        chkBxPanl.add(Box.createRigidArea(new Dimension(15, 5)));               

        JPanel bxPanl = new JPanel(new GridLayout(3, 3, 23, 23));       

        JPanel redBx = squrPanl(Color.red, 55);

        JPanel blBx = squrPanl(Color.blue, 55);

        JPanel grnBx = squrPanl(Color.green, 55);

        JPanel yelwBx = squrPanl(Color.yellow, 55);               

        grnBx.setVisible(false);

        blBx.setVisible(false);       

        yelwBx.setVisible(false);       

        bxPanl.add(redBx);

        bxPanl.add(blBx);

        bxPanl.add(grnBx);

        bxPanl.add(yelwBx);       

        overallGUI.add(chkBxPanl);

        overallGUI.add(bxPanl);       

        overallGUI.setOpaque(true);

        return overallGUI;

      }

    private JPanel squrPanl(Color color, int size)

      {

        JPanel temporaryPanl = new JPanel();

        temporaryPanl.setBackground(color);

        temporaryPanl.setMinimumSize(new Dimension(size, size));

        temporaryPanl.setMaximumSize(new Dimension(size, size));

        temporaryPanl.setPreferredSize(new Dimension(size, size));

        return temporaryPanl;

      }

    private static void showGUI()

      {

        JFrame.setDefaultLookAndFeelDecorated(true);

        JFrame frm = new JFrame("CheckBox");

        SwingCheckBxEx showdemo = new SwingCheckBxEx();

        frm.setContentPane(showdemo.shwCreatPnl());       

        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frm.pack();

        frm.setVisible(true);

      }

    public static void main(String[] args)

      {

        SwingUtilities.invokeLater(new Runnable()

          {

            public void run()

              {

                showGUI();

              }

          });

      }

  }

Output

Fig-1.jpg

fig-2.jpg