Java by API/java.awt.event/ContainerListener
Версия от 17:43, 31 мая 2010; (обсуждение)
implements ContainerListener
import java.awt.ruponent;
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 Main {
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();
}
}