ContainerTest.java Source code

Java tutorial

Introduction

Here is the source code for ContainerTest.java

Source

import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerEvent;
import java.awt.event.ContainerListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ContainerTest {
    public static void main(String args[]) {
        JFrame frame = new JFrame();
        Container contentPane = frame.getContentPane();

        ContainerListener cont = new ContainerListener() {
            ActionListener listener = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println("Selected: " + e.getActionCommand());
                }
            };

            public void componentAdded(ContainerEvent e) {
                Component c = e.getChild();
                if (c instanceof JButton) {
                    JButton b = (JButton) c;
                    b.addActionListener(listener);
                }
            }

            public void componentRemoved(ContainerEvent e) {
                Component c = e.getChild();
                if (c instanceof JButton) {
                    JButton b = (JButton) c;
                    b.removeActionListener(listener);
                }
            }
        };

        contentPane.addContainerListener(cont);

        contentPane.setLayout(new GridLayout(3, 2));
        contentPane.add(new JButton("First"));
        contentPane.add(new JButton("Second"));
        contentPane.add(new JButton("Third"));
        contentPane.add(new JButton("Fourth"));
        contentPane.add(new JButton("Fifth"));

        frame.setSize(300, 200);
        frame.show();
    }
}