我有一个小问题。
我的Java应用程序拥有一些本机资源。我想在退出应用程序之前释放这些资源。因此,我写了一个WindowListener
,可以在windowClosed
事件中释放这些资源。
问题是我有一个JFrame
EXIT_ON_CLOSE
,所以当我关闭窗口时,它关闭了JVM,事件永远不会到达我。
如果我使用windowClosing
事件,那么有人可以在释放资源后覆盖关闭事件。这将导致本机代码中的段错误。
我可以放弃EXIT_ON_CLOSE
并从听众处拨打System.exit(0)
,但这对我来说似乎并不干净。
答案 0 :(得分:3)
您可以添加一个关闭钩子并释放原生资源吗? Runtime.getRuntime().addShutdownHook(Thread t)
。查看更多信息here。
答案 1 :(得分:0)
您可以在释放资源之前隐藏JFrame
中的windowClosing
,这样您就可以确保它不会被中断