Java 在HSQLDB jar中调用DatabaseManagerSwing类的main方法后,如何获取窗口关闭事件?

Java 在HSQLDB jar中调用DatabaseManagerSwing类的main方法后,如何获取窗口关闭事件?,java,swing,hsqldb,Java,Swing,Hsqldb,我正在java应用程序中使用HSQL内存数据库。我通过调用DatabaseManagerSwing类的main方法来打开HSQLDB提供的GUI管理器。它成功地打开了 当用户手动关闭窗口时,我需要注册回调或通知。我在文档中找不到任何类似的内容,在看到DatabaseManagerSwing类的代码后,我认为它不受支持 stop方法只是清除其变量,不调用任何其他方法。正如我所想的,如果它支持这一点,它必须将回调对象存储在某处,并最终在stop方法中调用它们。但不幸的是,什么都没有 有没有办法或解决

我正在java应用程序中使用HSQL内存数据库。我通过调用
DatabaseManagerSwing
类的main方法来打开HSQLDB提供的
GUI管理器。它成功地打开了

当用户手动关闭窗口时,我需要注册回调或通知。我在文档中找不到任何类似的内容,在看到
DatabaseManagerSwing
类的代码后,我认为它不受支持

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


有没有办法或解决办法来完成这项工作?当用户关闭窗口时,我需要执行一些操作。

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

加上这个

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

当用户手动关闭窗口时,可以执行您想要执行的操作

请参阅(它实现了一个
SecurityManager
)。实际上,swing代码是库。我无法控制它。也许,这不是一个摇摆问题,而是一个与图书馆本身有关的问题。至于,hsqldb API中是否有什么东西可以使其成为可能。我想我是对的,但如果可能的话,请详细说明一下,因为我无法理解。