【问题标题】:What's the alternative to using the now deprecated com.apple.eawt.ApplicationAdapter in Java Swing apps on the Mac?在 Mac 上的 Java Swing 应用程序中使用现已弃用的 com.apple.eawt.ApplicationAdapter 的替代方法是什么?
【发布时间】:2017-05-02 10:09:09
【问题描述】:

看起来苹果已经弃用了我的应用正在使用的 api。不知道如何解决这个问题。具体用法可以看这里:

http://code.google.com/p/jarzilla/source/browse/trunk/jarzilla/src/main/java/com/googlecode/jarzilla/Jarzilla.java#192

【问题讨论】:

  • 通常当某些 API 被弃用时,其文档应该建议替换。 (我对特定于 Mac 的 API 一无所知,所以在这里我帮不上忙。)
  • 知道了,谢谢。这是似乎仍然对我有用的差异:link

标签: java macos swing


【解决方案1】:

好的,我在谷歌上搜索了一下the API doc(对我来说是第二次点击),它包含在第一句话中:

已弃用。 替换为 AboutHandler、PreferencesHandler、AppReOpenedListener、OpenFilesHandler、PrintFilesHandler、QuitHandler、QuitResponse。

(带有提到的接口和类的链接)。

所以看起来你不应该使用一个对象来继承这个抽象类,而是使用几个对象用于不同的目的,并将它们分别注册到你的 Application 对象中。

【讨论】:

  • 你不需要使用多个对象:你可以在一个类中实现所有接口。
  • @Pont “适配器”类的要点是它们对所有方法都有空实现,并允许您仅覆盖所需的方法。这不适用于接口(至少在我回答时不起作用,现在我们在接口中有默认方法)。
  • 没错,使用新的接口方法,您会获得更粗略的粒度:您必须实现每个接口的全部或不实现,而不是采用挑选方法。但这并没有改变我的观点,即您不需要“用于不同目的的多个对象”,正如您所写:您可以使用实现所有相关接口的单个​​对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
相关资源
最近更新 更多