ActionListener trong Java Swing – Học lập trình Java online – VietTuts

Lớp xử lý ActionEvent nên triển khai interface ActionListener. Đối tượng của lớp đó phải được đăng ký với một thành phần. Đối tượng có thể được đăng ký bởi sử dụng phương thức addActionListener(). Khi action event xảy ra, phương thức actionPerformed() của đối tượng đó được gọi.

Cú pháp khai báo cho java.awt.event.ActionListener interface là:

public interface ActionListener
   extends EventListener

Interface này kế thừa các phương thức từ lớp java.awt.EventListener.

Phương thức của ActionListener trong Java Swing:

  • void actionPerformed(ActionEvent e): Được triệu hồi khi một action xuất hiện.

Nội dung chính

  • Ví dụ ActionListener

Ví dụ ActionListener

package vn.viettuts.swing;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class ActionListenerExam1 {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;

    public ActionListenerExam1(){
       prepareGUI();
    }

    public static void main(String[] args) {
        ActionListenerExam1 demo = new ActionListenerExam1();
        demo.showActionListenerDemo();
    }

    private void prepareGUI() {
        mainFrame = new JFrame("Vi du Java Swing");
        mainFrame.setSize(400, 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ụ ActionListener trong Java Swing");
        mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    private void showActionListenerDemo() {
        headerLabel.setText("Listener in action: ActionListener");
        JPanel panel = new JPanel();
        panel.setBackground(Color.magenta);

        JButton okButton = new JButton("OK");
        okButton.addActionListener(new CustomActionListener());
        panel.add(okButton);
        controlPanel.add(panel);
        mainFrame.setVisible(true);
    }

    class CustomActionListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Ok Button Clicked.");
        }
    }
}

Chạy chương trình trên cho kết quả như sau:

ActionListener trong Java Swing