2012-07-31 83 views
4

我正在爲所有平臺編寫Java應用程序,但具體來說,我正在開發OS X外觀和集成(我在我的MacBook Pro上使用NetBeans)。我想訪問應用程序的菜單,即以應用程序命名的粗體菜單。我想爲About和Quit項目註冊監聽器,並顯示Preferences項目。我也不介意再添加一些我自己的東西。訪問從Java的Mac OS X應用程序菜單

那麼,我該怎麼做?我已經看過以前的帖子是指OSXAdapter,但是蘋果的天才們決定從它的庫中刪除它(或者不明確地重新命名),因爲所有的鏈接都會重定向到主頁面,而我所有的搜索都是徒勞的。我也看到了一個MacOSAppAdapter類,但我不確定如何使用它。所有的導入和新的類和層次結構都有點混亂。

編輯:

這是我做過什麼綁到關於,偏好和退出項目:

我做了一個新的類,MacOSXAboutHandler,擴展

com.apple.eawt.Application 

它的構造只需調用

setAboutHandler(AboutHandler aH) 

我提供了自己的偵聽器,它擴展

AboutHandler 

在我的主類我確定如果我在Mac上使用

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

如果這是真的,那麼我簡單地創建MacOSXAboutHandler的新實例運行。構造函數添加我的處理程序,並且每當應用程序運行(甚至在NetBeans中進行測試)時,單擊應用程序粗體菜單上的About ...項目將執行我在AboutHandler中指定的代碼。

對於喜好和退出也是這樣,只需用適當的操作替換「約」的出現即可。所有這些處理程序都是以任何其他Java偵聽程序編寫的。

回答

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

您可以使用

你可能想看看Apple's Java 6 Extensions API,從我的簡短閱讀Java System Property Reference for Mac,它看起來您基本上想要使用默認實例,如果com.apple.eawt.Application並提供您需要的處理程序(例如setAboutHandler)。

您可能還需要閱讀The Java on Mac OS X About, Quit and Preferences menu items and events文章,該文章應提供更多其他提示。

+0

我已閱讀這些的部分。我嘗試將其流程和代碼概念化,這讓我感到困惑。我誤解了他們的設置。以下是我所做的關於About菜單項(適用於Preferences,Quit等)的示例: 設置擴展com.apple.eawt.Application的自定義類(例如CustomMac)。在該類(或其他地方)中創建一個擴展AboutHandler的監聽器類,並在那裏做你需要做的事情。 CustomMac構造函數使用'setAboutHandler(AboutHandler aH)'簡單地添加偵聽器的新實例。 – 2012-08-01 04:08:36

+0

我現在不在我的Mac前面,所以在我回家時我會看看(我對長期任何方式的答案都感興趣)) – MadProgrammer 2012-08-01 04:10:20

+0

鏈接不再工作.. – 2013-03-24 04:49:57