如何在 Java Swing 中创建窗口关闭处理程序

2023-11-23

我试图在我的窗口(使用 Java Swing 创建的)关闭时调用一个函数来进行清理。 在我的初始化代码中我这样做:

public class FormLogin extends JFrame{
    private void initComponents(){
        ...
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent evt){
                formLoginWindowClosed(evt);
            }
        });
        ...
    }
}

但是当我按下退出按钮时,函数“formLoginWindowClosed”永远不会被调用。我还尝试使用 java.awt.event.WindowAdapter 作为参数创建侦听器,但它也不起作用。 我应该如何创建窗口关闭的监听器? 提前致谢。


将框架设置为关闭时退出,windowClosed永远不会被调用,主要是因为在引发事件之前系统已经退出。

尝试使用windowClosing反而。

或者,您可以使用关闭钩子

  • Java 中的 JVM 关闭钩子
  • Shutdown Hooks API 的设计
  • Java 关闭钩子 – Runtime.addShutdownHook()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Java Swing 中创建窗口关闭处理程序 的相关文章

随机推荐

  • 如何使用 BigQuery 补丁?

    BigQuery API 文档中有一个名为 patch 的方法 我希望我可以使用它来更改现有表的架构 不幸的是 bq 不支持它 但根据他们的网站 你可以尝试一下https developers google com bigquery doc
  • 在活动之间从列表视图传递数据到另一个活动

    我正在尝试将数据从这个主要活动传递到另一个活动 我成功地在活动之间发送数据 就像从编辑文本到下一个活动的数据一样putExtra and GetExtra方法并作为意图传递 但我在这项特定任务中面临挑战 将数据从列表视图发送到普通活动 数据
  • 将函数应用于 pandas Python 中的每一行时出现数据转换错误

    我在 python 的 pandas 中有一个数据框 类似于这样的东西 contest login count contest participation count ipn ratio 0 1 1 0 000000 1 3 3 0 083
  • Linux 中的“find -exec”shell 函数

    有没有办法得到find执行我在 shell 中定义的函数 例如 dosomething echo Doing something with 1 find exec dosomething 其结果是 find dosomething No s
  • 在android中实现徒手裁剪

    我正在尝试使用画布在 Android 中实现徒手裁剪 我用drawPath并将其存储在列表中并将其绘制在画布路径绘图中 像这样 但现在我想用这段代码使该路径中的所有像素都位于侧面区域 但我不知道该怎么做 public Bitmap getB
  • 文件上传作为带有其他字段的表单的一部分

    我有一个 ASP NET MVC 网站 我需要一个页面 用户必须在其中输入多个字段 包括图像文件 我可以找到很多很多使用 MVC 上传文件的参考资料 但他们不会将文件作为包含其他字段的表单的一部分上传 理想情况下 字段和文件将发送到单个控制
  • 单击启动器图标时恢复上次活动

    正如我所看到的 当单击启动器图标时 大多数应用程序都会恢复上次活动 然而 这似乎不是默认行为 在我的应用程序启动器活动中 单击启动器图标时总是启动 当单击启动器图标并且应用程序已经运行时 如何配置我的应用程序以恢复上次活动 Problem
  • python 检查序列中的位是真还是假

    我想知道序列中的某个位是 1 还是 0 真或假 如果我有 11010011 的一些子序列 我如何检查第四个位置是 True 还是 False example 10010101 4th bit gt False 10010101 3rd bi
  • 为派生类提供模板专业化的最简单方法

    我有以下场景 class my base class my derived public my base template
  • Collections.binarySearch() 与 List indexOf()

    我有超过 37K 项的列表 并且我已经实施了hashCode equals 所以我想知道Collections binarySearch 可以帮助提高性能并且比indexOf method 如果您的收藏已排序 binarySearch 将是
  • JavaScript 中的双感叹号运算符和 Boolean() 有什么区别? [复制]

    这个问题在这里已经有答案了 我知道 variable将变量转换为布尔值和函数Boolean 根据 ecma262 规范 还将通过调用执行类型转换ToBoolean value 我的问题是 有什么区别 是 性能比 Boolean 更好 它们是
  • 我是否必须在每个页面添加“<%@ Register assembly=”?

    我升级了 DevExpress 组件 但在我的应用程序中我必须更改每个组件 是的 看http we
  • C# 中的静态类

    在回答这个问题时 https stackoverflow com questions 352317 c coding question 352327 这让我想知道 将静态类视为等同于实现单例模式的非静态类实例是否存在任何危险 对我来说唯一显
  • 控件的自定义设计器

    我有一个派生自 SplitContainer 的自定义类 namespace Builder Components public partial class ProjectSidebar SplitContainer public Proj
  • 获取画布中的鼠标位置[重复]

    这个问题在这里已经有答案了 有没有办法获得鼠标的位置
  • C 中的完美数

    我需要编写一个 C 程序来找到完美数 main int n 1000 sum 0 for int num 1 num lt n num sum 0 for int i 1 i lt num i if num i sum i if sum n
  • 如何在 Windows 中的 git-bash 中执行位于带空格的文件夹(即“Program Files”)中的命令?

    当我使用 git bash 时 我有时想调用我的命令 PATH 实际上在我的 PATH 但如果 该命令位于包含空格的文件夹中的某个位置 则它将无法运行 例如 如果程序打开C Program Files whatever aCmd exe我输
  • 动态增加java堆空间

    我编写了一个 java 程序 用于测试具有不同数量处理器的不同机器上的几个多线程算法的速度 在某些机器上 合并排序 会失败 因为它需要相当大的堆空间才能处理非常大的数组 我可以在运行程序之前轻松地自己更改 java 堆空间 但我觉得更健壮且
  • 泛型类的类对象(java)

    java中有没有一种方法可以获取类似的实例Class
  • 如何在 Java Swing 中创建窗口关闭处理程序

    我试图在我的窗口 使用 Java Swing 创建的 关闭时调用一个函数来进行清理 在我的初始化代码中我这样做 public class FormLogin extends JFrame private void initComponent