【问题标题】:Access Mac OS X Application Menu from Java从 Java 访问 Mac OS X 应用程序菜单
【发布时间】:2012-07-28 20:45:38
【问题描述】:

我正在编写一个专为所有平台设计的 Java 应用程序,但具体来说,我正在研究 OS X 的外观和集成(我在 MacBook Pro 上使用 NetBeans)。我想访问应用程序的菜单,即以应用程序命名的粗体菜单。我想为 About 和 Quit 项目注册侦听器,并显示 Preferences 项目。我也不介意再添加一些我自己的项目。

那么,我该怎么做呢?我看到以前的帖子提到过 OSXAdapter,但是 Apple 的天才们决定将它从他们的库中删除(或模糊地重命名),因为所有链接都重定向到主页,而我的所有搜索都没有结果。我也见过MacOSAppAdapter 类,但我不确定如何使用它。所有的导入和新的类和层次结构都有些混乱。

编辑:

这是我为绑定到 About、Preferences 和 Quit 项目所做的:

我创建了一个新类,MacOSXAboutHandler,它扩展了

com.apple.eawt.Application

它的构造函数只是调用

setAboutHandler(AboutHandler aH)

我为它提供了我自己的扩展监听器

AboutHandler

在我的主课中,我确定我是否在 Mac 上使用

System.getProperty("os.name").contains("mac")

如果这是真的,那么我只需创建一个新的 MacOSXAboutHandler 实例。构造函数添加我的处理程序,并且每当运行应用程序(甚至在 NetBeans 中测试)时,单击应用程序粗体菜单上的 About... 项会执行我在 AboutHandler 中指定的代码。

首选项和退出也是如此,只需将出现的“about”替换为适当的操作。所有这些处理程序都像任何其他 Java 侦听器一样编写。

【问题讨论】:

    标签: java macos menu


    【解决方案1】:

    您可能想看看Bringing your Java Application to Mac OS X 和(更重要的是)Bringing your Java Application to Mac OS X Part 2Bringing your Java Application to Mac OS X Part 3

    你可以Java System Property Reference for Mac使用

    您可能想看看Apple's Java 6 Extensions API,从我的简短阅读来看,您似乎基本上想使用com.apple.eawt.Application 的默认实例并提供您需要的处理程序(例如setAboutHandler)。

    您可能还想通读The Java on Mac OS X About, Quit and Preferences menu items and events 文章,该文章应提供更多额外提示。

    【讨论】:

    • 我已经阅读了其中的部分内容。我尝试将他们的流程和代码概念化,这让我感到困惑。我误解了他们的设置。这是我为绑定到 About 菜单项(适用于 Preferences、Quit 等)所做的:设置一个扩展 com.apple.eawt.Application 的自定义类(比如 CustomMac)。在该类(或其他地方)中创建一个扩展 AboutHandler 的侦听器类,并在那里执行您需要执行的操作。 CustomMac 构造函数只是使用setAboutHandler(AboutHandler aH) 添加一个新的监听器实例。
    • 我现在不在我的 Mac 前,所以我回家后看看(我对长期答案很感兴趣;))
    • @StephaneGrenier 哪一个?那里有 6 个,它们都对我开放。
    • @StephaneGrenier 他们现在这样做了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    相关资源
    最近更新 更多