Program to demonstrate working of CheckBox and adding ActionListener to it in Java's Swing Framework.
Output of the program :
package com.hubberspot.swing; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; public class CheckBoxDemo { public static void main(String[] args) { // 1. Create a simple frame by creating an object // of JFrame. JFrame frame = new JFrame(); // 2. Give the frame a title "CheckBox Demo" by calling // setTitle method on frame object frame.setTitle("CheckBox Demo"); // 3. Give frame a size in pixels as say 300,300 frame.setSize(300, 200); // 4. set a operation when a user close the frame, here it // closes the frame and exits the application frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 5. Create a checkbox by creating an Object of class // JCheckBox. final JCheckBox checkBox1 = new JCheckBox(); // 6. set the text of checkbox1 as "check box 1" checkBox1.setText("check box 1"); // 7. Create another checkbox by creating an Object of class // JCheckBox. final JCheckBox checkBox2 = new JCheckBox(); // 8. set the text of checkBox2 as "check box 2" checkBox2.setText("check box 2"); // 9. Make it selected that is (checked) checkBox2.setSelected(true); // 10. Create a label by creating an Object of class // JLabel final JLabel label = new JLabel(); // 11. set the text of label as "check box 2 selected" // as initially we have made checkbox2 selected label.setText("check box 2 selected"); // 12. We add an ActionListener to the checkbox1 // which will listen about the action user performs // over the checkbox1. Here user only checks and unchecks // it. As soon as user checks checkbox1 the text of the // label changes from check box 2 selected to check box 1 selected // and checkbox2 is unchecked checkBox1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { JCheckBox checkBox = (JCheckBox) event.getSource(); if (checkBox.isSelected()) { checkBox.setSelected(true); checkBox2.setSelected(false); label.setText("check box 1 selected"); } } }); // 13. We add an ActionListener to the checkbox2 // which will listen about the action user performs // over the checkbox2. Here user only checks and unchecks // it. As soon as user checks checkbox2 the text of the // label changes from check box 1 selected to check box 2 selected // and checkbox1 is unchecked checkBox2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { JCheckBox checkBox = (JCheckBox) event.getSource(); if (checkBox.isSelected()) { checkBox.setSelected(true); checkBox1.setSelected(false); label.setText("check box 2 selected"); } } }); // 14. for adding all these swing components to frame // we first get the content pane which returns a // Container Container container = frame.getContentPane(); // 15. We create a Layout for Swing Components // here we are using FlowLayout with value as "center' // it will make the swing components float to center FlowLayout layout = new FlowLayout(FlowLayout.CENTER); // 16. We set the layout for container container.setLayout(layout); // 17. We add the checkboxes and label to it container.add(checkBox1); container.add(checkBox2); container.add(label); // 18. after adding checkboxes and label, we make it // visible on the frame by calling the method as // setVisible and passing value as true. frame.setVisible(true); } }
Output of the program :