AddCheckBoxAction.java Source code

Java tutorial

Introduction

Here is the source code for AddCheckBoxAction.java

Source

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

class AddCheckBoxAction implements ActionListener {
    CheckBoxPanel panel;

    public AddCheckBoxAction(CheckBoxPanel panel) {
        this.panel = panel;
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        panel.addNewCheckBox();
    }
}

class CheckBoxAction implements ActionListener {
    int id;

    CheckBoxAction(int id) {
        this.id = id;
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        System.out.println("CheckBox " + this.id + " was clicked");
    }
}

class CheckBoxPanel extends JPanel {
    JButton addCheckBox = new JButton("Add CheckBox");
    Vector<JCheckBox> checkBoxes = new Vector<JCheckBox>();

    public CheckBoxPanel() {
        addCheckBox.addActionListener(new AddCheckBoxAction(this));
        add(addCheckBox);
    }

    public void addNewCheckBox() {
        JCheckBox chBox = new JCheckBox("CheckBox " + (this.checkBoxes.size() + 1));
        chBox.addActionListener(new CheckBoxAction(this.checkBoxes.size() + 1));
        checkBoxes.add(chBox);
        add(chBox);
        revalidate();
    }
}

public class Main {
    public static void main(String[] args) {
        CheckBoxPanel chD = new CheckBoxPanel();
        JFrame mainFrame = new JFrame();
        JScrollPane scrollP = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollP.setViewportView(chD);
        mainFrame.setSize(320, 200);
        mainFrame.getContentPane().add(scrollP);

        mainFrame.setVisible(true);
    }
}