Close Window trong Java AWT – VietTuts

Chúng ta có thể đóng cửa sổ AWT hoặc Frame bằng cách gọi phương thức dispose() hoặc System.exit() bên trong phương thức windowClosing(). Phương thức windowClosing() được định nghĩa trong interface WindowListener và lớp WindowAdapter.

Lớp WindowAdapter cung cấp bản cài đặt chi tiết cho interface WindowListener. Nó cung cấp việc thực hiện mặc định tất cả 7 phương thức của interface WindowListener. Để ghi đè phương thức windowClosing(), bạn có thể sử dụng lớp WindowAdapter hoặc interface WindowListener.

Nếu bạn implements interface WindowListener, bạn sẽ bị buộc phải ghi đè tất cả 7 phương thức của interface WindowListener. Vì vậy, tốt hơn là sử dụng lớp WindowAdapter.

Các cách khác nhau để ghi đè phương thức windowClosing()

  • Bằng cách sử dụng lớp nặc danh.
  • Bằng cách kế thừa lớp WindowAdapter.
  • Bằng cách triển khai interface WindowListener.

Ví dụ 1 về close window trong Java AWT – sử dụng lớp nặc danh

package vn.viettuts.awt;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class CloseWindowExample1 extends Frame {
    public CloseWindowExample1() {
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
            }
        });
        setSize(400, 400);
        setLayout(null);
        setVisible(true);
    }

    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        new CloseWindowExample1();
    }
}

Ví dụ 2 về close window trong Java AWT – kế thừa lớp WindowAdapter

package vn.viettuts.awt;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class CloseWindowExample2 extends WindowAdapter {
    private Frame frame;

    public CloseWindowExample2() {
        frame = new Frame();
        frame.addWindowListener(this);

        frame.setSize(400, 400);
        frame.setLayout(null);
        frame.setVisible(true);
    }

    public void windowClosing(WindowEvent e) {
        frame.dispose();
    }

    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        new CloseWindowExample2();
    }
}

Ví dụ 3 về close window trong Java AWT – triển khai interface WindowListener

package vn.viettuts.awt;

import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class CloseWindowExample3 extends Frame implements WindowListener {
    public CloseWindowExample3() {
        addWindowListener(this);

        setSize(400, 400);
        setLayout(null);
        setVisible(true);
    }

    public void windowActivated(WindowEvent e) {
    }

    public void windowClosed(WindowEvent e) {
    }

    public void windowClosing(WindowEvent e) {
        dispose();
    }

    public void windowDeactivated(WindowEvent e) {
    }

    public void windowDeiconified(WindowEvent e) {
    }

    public void windowIconified(WindowEvent e) {
    }

    public void windowOpened(WindowEvent arg0) {
    }

    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        new CloseWindowExample3();
    }
}