21xrx.com
2025-04-26 10:17:50 Saturday
文章检索 我的文章 写文章
如何在Java中关闭一个窗口而不关闭整个程序
2023-06-12 19:07:02 深夜i     16     0
Java 窗口 关闭

在Java编程中,我们经常需要在窗口关闭时执行一些逻辑操作,但同时我们又不想退出整个程序。本文将介绍如何在 Java 中关闭一个窗口而不关闭整个程序。

首先,我们需要实现 JFrame 类的 WindowListener 接口,如下所示:

public class MyFrame extends JFrame implements WindowListener {
  //...
  @Override
  public void windowClosing(WindowEvent event) {
    // 在此处执行我们的逻辑操作
    // ...
    this.dispose(); // 默认关闭当前窗口
  }
  //...
}

在上面的代码中,我们重写了 WindowListener 接口中的 windowClosing 方法。在该方法中,我们可以实现窗口关闭时需要执行的逻辑操作。然后,使用 dispose() 方法默认关闭当前窗口,而不关闭整个程序。

下面是一个完整的示例代码,演示如何关闭一个窗口而不关闭整个程序:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CloseWindowTest extends JFrame implements WindowListener {
  private static final long serialVersionUID = 1L;
  
  public CloseWindowTest() {
    super("Close Window Test");
    addWindowListener(this);
    setSize(200, 200);
    setVisible(true);
  }
  
  @Override
  public void windowOpened(WindowEvent e) {}
  @Override
  public void windowClosing(WindowEvent e) {
    JOptionPane.showMessageDialog(this, "窗口正在关闭中...");
    this.dispose();
  }
  @Override
  public void windowClosed(WindowEvent e) {}
  
  @Override
  public void windowIconified(WindowEvent e) {}
  @Override
  public void windowDeiconified(WindowEvent e) {}
  @Override
  public void windowActivated(WindowEvent e) {}
  @Override
  public void windowDeactivated(WindowEvent e) {}
  
  public static void main(String[] args) {
    CloseWindowTest frame = new CloseWindowTest();
  }
}

在上面的例子中,我们创建了一个名为 CloseWindowTest 的窗口,并实现了 WindowListener 接口。当关闭窗口时,程序会弹出一个提示对话框,然后关闭该窗口,但不退出整个程序。

  
  

评论区

请求出错了