从Java访问Mac OS X应用程序菜单

时间:2012-07-31 06:05:05

标签: java macos menu

我正在编写一个专为所有平台设计的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中指定的代码。

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

1 个答案:

答案 0 :(得分:2)

您可能需要查看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的默认实例并提供您需要的处理程序(例如{ {1}})。

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