ContainerListener Interface được sử dụng để nhận các sự kiện liên quan tới container. Lớp mà xử lý container event cần triển khai interface này. Cú pháp để khai báo java.awt.event.ContainerListener là:
public interface ContainerListener extends EventListener
Interface này kế thừa các phương thức từ lớp java.awt.EventListener.
Các phương thức của MouseListener Interface trong Java Swing
1. void componentAdded(ContainerEvent e): Được triệu hồi khi một thành phần đã được thêm vào container.
2. void componentRemoved(ContainerEvent e): Được triệu hồi khi một thành phần đã bị xóa khỏi container.
Ví dụ ContainerListener
package vn.kienthuclaptrinh.swing; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ContainerEvent; import java.awt.event.ContainerListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.WindowConstants; public class ContainerListenerExam1 { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public ContainerListenerExam1(){ prepareGUI(); } public static void main(String[] args) { ContainerListenerExam1 demo = new ContainerListenerExam1(); demo.showContainerListenerDemo(); } private void prepareGUI() { mainFrame = new JFrame(); mainFrame.setSize(450, 300); mainFrame.setLayout(new GridLayout(3, 1)); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("", JLabel.CENTER); statusLabel.setSize(350, 100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); mainFrame.setTitle("Ví dụ AdjustmentListener trong Java Swing"); mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } private void showContainerListenerDemo() { headerLabel.setText("Listener in action: ContainerListener"); JPanel panel = new JPanel(); panel.setBackground(Color.magenta); panel.addContainerListener(new CustomContainerListener()); JLabel msglabel = new JLabel("Huong dan Java Swing.", JLabel.CENTER); panel.add(msglabel); controlPanel.add(panel); mainFrame.setVisible(true); } class CustomContainerListener implements ContainerListener { public void componentAdded(ContainerEvent e) { statusLabel.setText(statusLabel.getText() + e.getComponent().getClass().getSimpleName() + " added. "); } public void componentRemoved(ContainerEvent e) { statusLabel.setText(statusLabel.getText() + e.getComponent().getClass().getSimpleName() + " removed. "); } } }
Chạy chương trình trên cho kết quả như sau: