📜  Java中关闭AWT窗口(1)

📅  最后修改于: 2023-12-03 15:16:19.438000             🧑  作者: Mango

Java中关闭AWT窗口

在Java的AWT界面编程中,关闭窗口是一个基本的需求。本文将介绍几种关闭AWT窗口的方法。

方法一:使用WindowAdapter类

WindowAdapter类是一个抽象类,我们可以通过继承它并重写它的windowClosing()方法来实现关闭窗口的操作。下面是一个例子:

import java.awt.*;
import java.awt.event.*;

public class CloseWindowDemo extends Frame {
    public CloseWindowDemo() {
        super("关闭窗口示例");

        // 添加窗口关闭事件处理程序
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
                System.exit(0);
            }
        });

        // 添加组件
        Label label = new Label("欢迎使用本系统!", Label.CENTER);
        add(label);

        // 设置界面大小和可见性
        setSize(200, 100);
        setVisible(true);
    }
    
    public static void main(String[] args) {
        new CloseWindowDemo();
    }
}

上面的代码定义了一个CloseWindowDemo类,继承了Frame类。在构造函数中,我们添加了一个WindowAdapter的实例作为窗口关闭事件的处理程序,并重写了它的windowClosing()方法来关闭窗口。在windowClosing()方法中,首先调用了dispose()方法释放资源,然后调用了System.exit()方法退出程序。

方法二:使用WindowListener类

WindowListener接口是一个事件监听器接口,它定义了窗口事件相关的方法。我们可以通过实现它并将其注册为事件监听器来实现关闭窗口的操作。下面是一个例子:

import java.awt.*;
import java.awt.event.*;

public class CloseWindowDemo extends Frame implements WindowListener {
    public CloseWindowDemo() {
        super("关闭窗口示例");
        
        // 添加窗口事件监听器
        addWindowListener(this);
        
        // 添加组件
        Label label = new Label("欢迎使用本系统!", Label.CENTER);
        add(label);
        
        // 设置界面大小和可见性
        setSize(200, 100);
        setVisible(true);
    }
    
    public static void main(String[] args) {
        new CloseWindowDemo();
    }
    
    // 实现WindowListener接口
    public void windowClosing(WindowEvent e) {
        dispose();
        System.exit(0);
    }
    
    public void windowOpened(WindowEvent e) {}
    public void windowClosed(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
}

上面的代码中,我们实现了WindowListener接口,并将CloseWindowDemo类本身作为窗口事件处理程序注册到了窗口中。在窗口关闭事件发生时,会调用我们实现的windowClosing()方法来关闭窗口。

方法三:使用WindowConstants类

WindowConstants类是一个接口,定义了各种窗口常量。我们可以通过在构造函数中设置窗口的关闭操作来关闭窗口。下面是一个例子:

import java.awt.*;
import javax.swing.*;

public class CloseWindowDemo {
    public CloseWindowDemo() {
        JFrame frame = new JFrame("关闭窗口示例");
        
        // 设置窗口关闭操作
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        // 添加组件
        JLabel label = new JLabel("欢迎使用本系统!", JLabel.CENTER);
        frame.getContentPane().add(label);
        
        // 设置界面大小和可见性
        frame.setSize(200, 100);
        frame.setVisible(true);
    }
    
    public static void main(String[] args) {
        new CloseWindowDemo();
    }
}

上面的代码中,我们使用JFrame类来创建窗口,并在构造函数中设置了关闭操作为EXIT_ON_CLOSE。这样,当用户点击窗口的关闭按钮时,程序会自动退出。

总结

本文介绍了Java中三种关闭AWT窗口的方法,分别为使用WindowAdapter类、WindowListener类和WindowConstants类。开发者可以选择适合自己的方式来关闭窗口。