已弃用的 com.apple.eawt.ApplicationListener 的替代方案是什么

igo*_*-so 6 java macos osx-lion

Apple 的 Java 中的 ApplicationListener 类已被弃用。还有什么选择呢?

包:com.apple.eawt

Aar*_*ron 5

如果您想挂钩“打开”、“首选项”、“关于”、“退出”菜单项/事件,请迁移到使用 com.apple.eawt.Application.set*Handler() API。

来自https://web.archive.org/web/20141020092159/http://lists.apple.com/archives/java-dev/2012/Jan/msg00101.html

完整的回应是

作为这些API的反对者,我想我有资格回答这个问题:

如果您想挂钩“打开”、“首选项”、“关于”、“退出”菜单项/事件,请迁移到使用 com.apple.eawt.Application.set*Handler() API。完整的 JavaDoc 位于 Java Developer Package 的 JDK 中的 appledocs.jar(位于 <developer.apple.com/downloads/index.action?name=Java Developer>)中,以及位于 [... 损坏的链接 处的较陈旧的副本。 ..]。

大多数人通常只想实现 setQuitHandler() 或使用 setQuitStrategy(),并且可能想要 setPreferencesHandler()。旧样式的 ApplicationListener 是一个糟糕的接口,因为它交叉了太多不同的概念,并强制应用程序侦听所有这些概念,并允许多个侦听器收到只应由单个代理处理的事情的通知。

此致, Mike Swingler Java 工程