DevFaqUsingSubmenusJa

Revision as of 16:04, 6 November 2009 by Admin (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)

正式なアクションの代わりに、サブメニューをポップアップやその他のメニューに設置する事はできますか?

はい、ポップアップや正式なメニューに設置されるアイテムを持つと思っている API の場所に、代わりにサブメニューを設定できます。

ダミー Action を設定してください(javax.swing.AbstractAction= の何もしないサブクラスで可能です)、またはある場合では、全く =Action でさえない必要があります。コンテクストメニューのために、ActionPresenter.Popup を実装し、 getPopupPresenter() から JMenu を返すようしてください。

同じように、ツールバーやメインメニューに表示する異なるコンポーネントを設定するため、 Presenter のその他のサブインターフェイスを実装する事ができます。

メインメニューに代替コンポーネントを使う事への注意: もし、Mac OS 上でアクションが正しく動作してほしいなら、Presenter.Menu を実装しているとすれば、おそらく getMenuPresenter() からは JMenu または JMenuItem 以外の何かが返ってきて欲しくないでしょう。一般的に好きなものを置く事ができる汎用の Swing コンテナとして、Swingはメニューポップアップを扱う事を可能としています。これは Mac OS スクリーンメニューバーでは全く正しくありません - 通常のメニューアイテムを期待するもので、メニューが独自の内容では全く正しくは動かないでしょう。

getPopupPresenter または getMenuPresenter から単に JMenu を返すだけなら、たとえ条件付きで無効にする事ができても、常に表示されることでしょう。時にサブメニューを非表示にしたくなったら、 DynamicMenuContent を実装する事で、好きなときにいつでも表示、非表示にできます(または、1つ以上のメニューアイテム/サブメニューを与えることでさえ)。DynamicMenuContent は NetBeans 5.0 での新たなもので、それ以前のリリースではこの目的のために非推奨の JInlineMenu を使う必要があります。


Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo