2012-05-02 7 views
5

Netbeansプラットフォームで作成されたスケルトンに表示されているメニューを編集する方法を知っている人はいますか?Netbeansのプラットフォームとメニュー

あなたが私を助けるために過ごす時間を事前に感謝します。

+0

GUIフォームの例ですか? –

答えて

11

プリアンブル:プラットフォームに存在するメニュー項目を編集する唯一の方法は、自分のモジュールを使用することです。つまり、別のモジュールのメニュー項目を削除または名前を変更するには、最初にアプリケーションにモジュールを追加する必要があります。あなたのアプリケーションはそれ自身がモジュールではなく、モジュールの(潜在的な)コレクションです。あなたのモジュールの1つに

  1. Important Filesノード
  2. を展開モジュールが持っていると仮定すると(XML Layerノードを展開:

    NBプラットフォームベースのアプリケーションのメニューを編集する最も簡単な方法は、以下であります層file¹)

  3. は展開Menu BarノードThis layer in contextノード
  4. 展開
  5. 右これは、あなたのモジュールのレイヤファイル(_hiddenエントリ)に必要なエントリを追加している限り、このモジュールは、これらをロードされるようになる任意のメニュー(フォルダノード)またはメニュー項目(ファイルノード)をクリックするとDelete

を選択メニューとメニュー項目はロードされません。今後アイテムを復元する場合は、レイヤーファイルからエントリを削除するか、アイテムを右クリックしてRestoreを選択します。

編集

ここでは、メニュー項目の名前を変更する方法です:右ノードをクリックしに行く」を選択あなたは

  • の名前を変更したい項目を見つけるために、上記の技術を使用して

    1. を宣言 "
    2. " SystemFileSystem.localizingBundle "のnameの属性を探します
    3. Oペンアプリケーションのブランディング・インターフェース(右アプリケーションのノードを右クリックし、Branding...を選択)
    4. は、手順3

    での名前を発見した値を持つバンドルノードのResource Bundlesタブ

  • ルックを選択します。メニュー項目は、このBundleのノードに配置されます。これを編集するだけで、アプリケーションで変更されます。ここでのキーは、メニュー項目の名前が付けられたBundleを見つけることです。あなたが宣言、検索(Ctrlキー+ F)同じファイルを得たら、前のアウトライン
  • から

    1. フォロー、手順1と2:ここでは

      は、メニュー項目のアクションを交換するための方法ですoriginalFile値(あなただけ.instance宣言を探している)²
    2. のためのアクションが定義されている場所を見つけたら、あなたのレイヤファイル
    3. に構造をコピーしdelegateを使用して、あなたが何actioを再定義することができます属性このメニュー項目にnが使用されています

    ここでのポイントは、レイヤーファイル内のメニュー項目のアクション定義を上書きし、自分でアクションを置き換えます。また、このテクニックを使用してアクションの表示名をオーバーライドすることもできますが、アクションを置き換える必要がない場合は、ブランディング手法が簡単になります。


    ¹モジュールにレイヤーファイルがない場合は、このテクニックを使用する前にレイヤーファイルを作成する必要があります。これには、モジュールのパッケージの1つにlayer.xmlファイルを作成する必要があります。そして、あなたはoriginalValue属性の値がActions/Window/org-netbeans-core-windows-actions-RecentViewListAction.instanceある場合は、例えばoriginalValue属性の値とCtrlキーを押しながらFの.instance名前を強調表示することができ、このステップ²ForOpenIDE-Module-Layer: com/example/mymodule/layer.xml

    次を使用して、モジュールマニフェストファイルで、このファイルを登録する必要がありますorg-netbeans-core-windows-actions-RecentViewListAction.instance部分のみをハイライトしたいとします。ここでのポイントは、アクションが定義されている場所を見つけることです(レイヤーファイルのこの部分は、アクションをメニューに追加するだけです)。

  • +0

    しかし、スケルトンの一部である既に読み込まれているメニュー(「ナビゲート」メニューなど)を編集するにはどうすればよいですか? – Zelig63

    +0

    編集の意味は?名前を変更したり、アイテムを追加したりしますか? –

    +0

    リンクされたコードの名前を変更、抑制、変更することを意味します。 – Zelig63

    2

    正確に何をしたいか分かりませんが、通常はlayer.xmlファイルがそのような変更を行う場所です。

    +0

    私は、layer.xmlファイルを持たないmavenバージョンを持っています。これが当てはまる場合は、layer.xmlファイルを追加する必要があります。どこに追加しますか?私はNBPのMaven版を使用しています。 – simgineer

    4

    はきれいに上記で説明されたものに加えて、ここにもXMLファイルの内容を見ずに、独自のグローバルなメニュー項目を追加するための簡単なトリックである:あなたのモジュールツリーで

    1. 行くと、ファイルを見つけます
      • この層:layers.xmlノードをクリックしますが、その子を展開する
      • layers.xml 名付け、これらは2つのフォルダがあります
    2. をクリックして新しいフォルダを追加したノード「文脈でこの層」を展開し、サブフォルダメニューバー右
    3. に行くコンテキスト内のこのレイヤー(名それ履歴例)メニューバー。この新しいフォルダの名前は、メインGUIウィンドウのグローバルメニューのカテゴリとして使用されます。
    4. は、右のあなたのモジュールをクリックして、このグローバルメニューにサブメニュー項目を追加新規作成>アクションアクションを選択して、このサブメニューを配置するためのメニューを選択するように求められたとき歴史を選択します。

    PS:あなたはメニューバーのために行ったように、あなたはまた、ツールバーにカテゴリを追加することができます。 ありがとうございました

    関連する問題