ContainerListener Interface trong Java Swing



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 com.vietjack.gui;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class SwingListenerDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;   public SwingListenerDemo(){
      prepareGUI();
   }   public static void main(String[] args){
      SwingListenerDemo  swingListenerDemo = new SwingListenerDemo();  
      swingListenerDemo.showContainerListenerDemo();
   }   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));      headerLabel = new JLabel("",JLabel.CENTER );
      statusLabel = new JLabel("",JLabel.CENTER);              statusLabel.setSize(350,100);
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
	        System.exit(0);
         }        
      });    
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }   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("Chao mung ban den voi bai 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. ");
      }
   }}

event_listener_trong_java_swing.jsp