📜  在 jvava 中关闭 GUI - Java (1)

📅  最后修改于: 2023-12-03 14:50:59.384000             🧑  作者: Mango

在 Java 中关闭 GUI

介绍

Java 提供了强大的 GUI(图形用户界面)工具包,比如 AWT(抽象窗口工具包)和 Swing。然而,GUI 界面的关闭也是一个非常重要的操作,本文将介绍如何在 Java 中关闭 GUI。

关闭 JFrame

要关闭 JFrame 窗口,可以使用 setDefaultCloseOperation() 方法。这个方法接受一个常量,用于指定如何关闭窗口,常用的选项包括:

  • JFrame.DISPOSE_ON_CLOSE:关闭窗口并释放所有关联的资源
  • JFrame.DO_NOTHING_ON_CLOSE:不执行任何操作
  • JFrame.EXIT_ON_CLOSE:调用 System.exit() 方法结束程序

以下是一个例子,演示如何使用 setDefaultCloseOperation() 方法关闭 JFrame:

import javax.swing.*;

public class TestFrame extends JFrame {
    public TestFrame() {
        // 设置窗口大小和标题
        setSize(300, 200);
        setTitle("Test Frame");

        // 设置关闭操作
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 显示窗口
        setVisible(true);
    }

    public static void main(String[] args) {
        new TestFrame();
    }
}

在这个例子中,我们创建了一个 TestFrame 类,继承自 JFrame。在构造函数中,我们设置了窗口的大小和标题,并使用 setDefaultCloseOperation() 方法设置关闭操作为 JFrame.EXIT_ON_CLOSE。最后,我们显示窗口。

关闭 JDialog

JDialog 是一个对话框,它通常用于在应用程序中显示提示框、错误消息等。要关闭 JDialog,可以使用以下方法之一:

  • 调用 dispose() 方法:这个方法将关闭对话框并释放所有关联的资源
  • 设置可见性为 false:将对话框的可见性设置为 false 将隐藏对话框,但是并不会释放相关的资源

以下是一个例子,演示如何使用 dispose() 方法关闭 JDialog:

import javax.swing.*;

public class TestDialog extends JDialog {
    public TestDialog(JFrame parent) {
        super(parent, "Test Dialog");

        // 设置对话框大小
        setSize(200, 100);

        // 设置关闭操作
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

        // 显示对话框
        setVisible(true);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        TestDialog dialog = new TestDialog(frame);
        JOptionPane.showMessageDialog(frame, "我是父窗口,对话框已关闭");
    }
}

在这个例子中,我们创建了一个 TestDialog 类,继承自 JDialog。在构造函数中,我们设置了对话框的大小和标题,并使用 setDefaultCloseOperation() 方法设置关闭操作为 JDialog.DISPOSE_ON_CLOSE。最后,我们显示对话框。在 main() 方法中,我们创建了一个 JFrame 窗口和一个 TestDialog 对话框,并通过 JOptionPane 来显示一个消息框,以便我们测试对话框是否成功关闭。

结论

Java 提供了强大的 GUI 工具包,但是在使用 GUI 的过程中,关闭窗口也是一个非常重要的操作。本文介绍了如何在 Java 中关闭 JFrame 和 JDialog。