5

私はすべてのプラットフォーム用に設計された 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 リスナーと同じように作成されます。

4

1 に答える 1

3

Bringing your Java Application to Mac OS Xおよび (さらに重要なことに) Bringing your Java Application to Mac OS X Part 2およびBringing your Java Application to Mac OS X Part 3 を参照してください。

Mac 用の Java システム プロパティ リファレンスを使用する場合があります。

Apple の Java 6 Extensions APIを参照してください。簡単に読んだところ、 com.apple.eawt.Applicationの場合は基本的にデフォルトのインスタンスを使用し、必要なハンドラー ( などsetAboutHandler) を提供する必要があるようです。

また、Mac OS X の Java について、終了、および設定のメニュー項目とイベントの記事を読みたいと思うかもしれません。この記事には、さらにいくつかの追加のヒントが記載されています。

于 2012-07-31T06:20:46.430 に答える