21xrx.com
2024-12-22 23:20:18 Sunday
登录
文章检索 我的文章 写文章
如何在Java中关闭一个窗口而不关闭整个程序
2023-06-12 19:07:02 深夜i     --     --
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 接口。当关闭窗口时,程序会弹出一个提示对话框,然后关闭该窗口,但不退出整个程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复