FocusListener Interface trong Java Swing



FocusListener Interface được sử dụng để nhận sự kiện liên quan tới keyboard focus. Lớp mà triển khai focus event cần triển khai interface này. Cú pháp để khai báo java.awt.event.FocusListener Interface là:

public interface FocusListener
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 focusGained(FocusEvent e): Được triệu hồi khi một thành phần nhận keyboard focus.

2. void focusLost(FocusEvent e): Được triệu hồi khi một thành phần mất keyboard focus.

Ví dụ FocusListener

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.showFocusListenerDemo();
   }   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 showFocusListenerDemo(){      headerLabel.setText("Listener in action: FocusListener");      
      JButton okButton = new JButton("OK");
      JButton cancelButton = new JButton("Cancel");
   
      okButton.addFocusListener(new CustomFocusListener());  
      cancelButton.addFocusListener(new CustomFocusListener());  
   
      controlPanel.add(okButton);
      controlPanel.add(cancelButton);     
      mainFrame.setVisible(true);     }   class CustomFocusListener implements FocusListener{
      public void focusGained(FocusEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " gained focus. ");
      }      public void focusLost(FocusEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " lost focus. ");
      }
   }
}

event_listener_trong_java_swing.jsp