在EXIT_ON_CLOSE JFrame上调用windowClosed

时间:2012-04-14 18:09:42

标签: java swing windowlistener resource-cleanup

我有一个小问题。

我的Java应用程序拥有一些本机资源。我想在退出应用程序之前释放这些资源。因此,我写了一个WindowListener,可以在windowClosed事件中释放这些资源。

问题是我有一个JFrame EXIT_ON_CLOSE,所以当我关闭窗口时,它关闭了JVM,事件永远不会到达我。

如果我使用windowClosing事件,那么有人可以在释放资源后覆盖关闭事件。这将导致本机代码中的段错误。

我可以放弃EXIT_ON_CLOSE并从听众处拨打System.exit(0),但这对我来说似乎并不干净。

2 个答案:

答案 0 :(得分:3)

您可以添加一个关闭钩子并释放原生资源吗? Runtime.getRuntime().addShutdownHook(Thread t)。查看更多信息here

答案 1 :(得分:0)

您可以在释放资源之前隐藏JFrame中的windowClosing,这样您就可以确保它不会被中断