从Java访问Mac OS X应用程序菜单
我正在编写一个为所有平台设计的Java应用程序,但具体来说,我正在研究OSX的外观和集成(我在MacBookPro上使用NetBeans)。我想访问应用程序的菜单,即以应用程序命名的粗体菜单。我想注册About和Quit项目的侦听器,并显示Preferences项目。我也不介意多加一些我自己的东西 那么,我该怎么做呢?我以前看到过关于OSXAAdapter的帖子,但苹果的天才们决定将其从他们的库中删除(或者含糊其辞地重命名),因为所有链接都重定向到主页,而我所有的搜索都没有结果。我也看过一个类,但我不知道如何使用它。所有导入的和新的类和层次结构都有点混乱 编辑: 这就是我在“关于”、“首选项”和“退出”项目中所做的工作: 我创建了一个新类MacOSXAboutHandler,它扩展了从Java访问Mac OS X应用程序菜单,java,macos,menu,Java,Macos,Menu,我正在编写一个为所有平台设计的Java应用程序,但具体来说,我正在研究OSX的外观和集成(我在MacBookPro上使用NetBeans)。我想访问应用程序的菜单,即以应用程序命名的粗体菜单。我想注册About和Quit项目的侦听器,并显示Preferences项目。我也不介意多加一些我自己的东西 那么,我该怎么做呢?我以前看到过关于OSXAAdapter的帖子,但苹果的天才们决定将其从他们的库中删除(或者含糊其辞地重命名),因为所有链接都重定向到主页,而我所有的搜索都没有结果。我也看过一个类,
com.apple.eawt.Application
AboutHandler
它的构造函数只调用
setAboutHandler(AboutHandler aH)
我为它提供了我自己的监听器,可以扩展
com.apple.eawt.Application
AboutHandler
在我的主要课程中,我使用
System.getProperty("os.name").contains("mac")
如果这是真的,那么我只需创建MacOSXAboutHandler的一个新实例。构造函数添加了我的处理程序,每当应用程序运行(甚至在NetBeans中测试)时,单击About。。。应用程序粗体菜单上的项执行我在AboutHandler中指定的代码
对于首选项和退出也是如此,只需用适当的操作替换出现的“about”。所有这些处理程序都是像其他Java侦听器一样编写的。您可能想看看和(更重要的是)和 你可能有用 您可能需要从我的简短阅读中查看一下,如果需要并提供所需的处理程序(例如
setAboutHandler
),您基本上希望使用默认实例
您可能还想通读这篇文章,它应该会提供更多的提示。我已经阅读了其中的部分内容。我试图对他们的流程和代码进行概念化,但这让我感到困惑。我误解了他们的安排。下面是我在About菜单项中所做的工作(适用于首选项、退出等):设置一个扩展com.apple.eawt.Application的自定义类(比如CustomMac)。在该类(或其他地方)中,创建一个扩展了AboutHandler的listener类,并在那里执行您需要执行的操作。CustomMac构造函数只需使用
setaboutandler(aboutandler aH)
添加一个新的侦听器实例。我现在不在Mac前面,所以我回家后会看一看(我对答案很感兴趣;)@StephaneGrenier哪一个?那里有6个,他们都为我开门。@StephaneGrenier他们现在开门了