在 HSQLDB jar 中调用 DatabaseManagerSwing class 的主要方法后,如何获取 window 关闭事件?

How to get the window closed event after I invoke the main method of DatabaseManagerSwing class in HSQLDB jar?

我在 java 应用程序中使用内存数据库中的 HSQL。我通过调用 DatabaseManagerSwing class 的主要方法打开 HSQLDB 提供的 GUI manager。打开成功。

我需要注册回调在用户手动关闭window时收到通知。我无法在文档中找到任何类似的东西,在看到 DatabaseManagerSwing class 的代码后,我认为它不受支持。

stop方法只是清除其变量,不调用任何其他方法。正如我在想的那样,如果它支持这个,它必须将回调对象存储在某个地方,最后在 stop 方法中调用它们。但不幸的是,什么都没有。

是否有任何方法或解决方法来完成此操作?当用户关闭 window.

时,我需要执行一些操作

我添加了一个 shutdownhook,以便它在程序终止时运行。但事实并非如此。确保在启动 HSQL 数据库管理器时,不要传递 --noexit 参数。如果不传递参数,JVM 将在您关闭数据库管理器时退出 window。

通过添加这个

Runtime.getRuntime().addShutdownHook(new Thread(() -> {
        // do your stuff
    }) {
    });

当window被用户手动关闭时,你可以做你想做的事。