Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java访问Mac OS X应用程序菜单_Java_Macos_Menu - Fatal编程技术网

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

从Java访问Mac OS X应用程序菜单,java,macos,menu,Java,Macos,Menu,我正在编写一个为所有平台设计的Java应用程序,但具体来说,我正在研究OSX的外观和集成(我在MacBookPro上使用NetBeans)。我想访问应用程序的菜单,即以应用程序命名的粗体菜单。我想注册About和Quit项目的侦听器,并显示Preferences项目。我也不介意多加一些我自己的东西 那么,我该怎么做呢?我以前看到过关于OSXAAdapter的帖子,但苹果的天才们决定将其从他们的库中删除(或者含糊其辞地重命名),因为所有链接都重定向到主页,而我所有的搜索都没有结果。我也看过一个类,

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

那么,我该怎么做呢?我以前看到过关于OSXAAdapter的帖子,但苹果的天才们决定将其从他们的库中删除(或者含糊其辞地重命名),因为所有链接都重定向到主页,而我所有的搜索都没有结果。我也看过一个类,但我不知道如何使用它。所有导入的和新的类和层次结构都有点混乱

编辑:

这就是我在“关于”、“首选项”和“退出”项目中所做的工作:

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

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他们现在开门了