我有几个窗口,我想在用户采取操作关闭窗口(通过标题栏中的按钮、菜单项或我提供的按钮)之后和处理窗口之前保存默认值。
- 有些窗口我可以DISPOSE_ON_CLOSE,但有些窗口我需要在它们被dispose()之前提供信息。
-
窗体窗口关闭 http://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowListener.html#windowClosed(java.awt.event.WindowEvent)似乎只有在窗口被处理时才会触发,我不能总是依赖它(见上文和下文)
-
窗体窗口关闭 http://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowListener.html#windowClosing(java.awt.event.WindowEvent)似乎只有当用户从标题栏的系统菜单关闭窗口时才会触发,即使我在自己的菜单操作处理程序中调用 System.exit(0)
- 根据 do GC 文档,dispose() 方法并不总是被调用,并且在应用程序关闭时经常被忽略。
- I've added a 关闭钩子 https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#addShutdownHook-java.lang.Thread-运行 System.runFinalization() 但代码仍未执行。无论如何,这可能已经太晚了,因为到那时一些窗户已经被处理掉了。
如何确保在窗口被处理之前运行代码?这是窗口本身应该能够处理的任务。我对 Closed、Closing 和 dispose 事件的不可靠性感到有点沮丧。我缺少什么?
Use 窗口监听器 http://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowListener.html 窗口关闭() http://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowListener.html#windowClosed(java.awt.event.WindowEvent)方法。一般来说,在 Java 中你不能依赖处置。不保证会调用该方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)