6

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

あなたが私を助けるために費やす時間を前もって感謝します。

4

3 に答える 3

13

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

NBプラットフォームベースのアプリケーションのメニューを編集する最も簡単な方法は次のとおりです。

  1. モジュールの1つで、Important Filesノードを展開します
  2. ノードを展開XML Layerします(モジュールにレイヤーファイルがあると仮定します¹)
  3. This layer in contextノードを展開します
  4. Menu Barノードを展開します
  5. メニュー(フォルダノード)またはメニュー項目(ファイルノード)を右クリックして、Delete

これにより、必要なエントリがモジュールレイヤーファイルに追加され(_hiddenエントリ)、このモジュールがロードされている限り、これらのメニューとメニュー項目はロードされません。将来アイテムを復元する場合は、レイヤーファイルからエントリを削除するか、アイテムを右クリックして[]を選択しますRestore

編集

メニュー項目の名前を変更する方法は次のとおりです。

  1. 上記の手法を使用して、名前を変更するエントリを見つけます
  2. ノードを右クリックして、[宣言に移動]を選択します
  3. name「SystemFileSystem.localizingBundle」の属性を探します
  4. アプリケーションのブランディングインターフェイスを開きます(アプリケーションのノードを右クリックして、を選択しますBranding...
  5. Resource Bundlesタブを選択します
  6. 手順3で見つけた値を持つバンドルノードを探します

メニュー項目の名前は、このバンドルのノードにあります。これを編集するだけで、アプリケーションで変更されます。ここで重要なのは、メニュー項目の名前が付けられているバンドルを見つけることです。

メニュー項目のアクションを置き換える方法は次のとおりです。

  1. 前の概要の手順1と2に従います
  2. 宣言に到達したら、同じファイルでoriginalFile値を検索(Ctrl + F)します(.instance宣言のみを検索します)²
  3. アクションが定義されている場所を見つけたら、構造をレイヤーファイルにコピーします
  4. 属性を使用delegateして、このメニュー項目に使用されるアクションを再定義できます

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


¹モジュールにレイヤーファイルがない場合は、この手法を使用する前にレイヤーファイルを作成する必要があります。layer.xmlこれには、モジュールのパッケージの1つにファイルを作成する必要があります。次に、以下を使用して、このファイルをモジュールマニフェストファイルに登録する必要があります。OpenIDE-Module-Layer: com/example/mymodule/layer.xml

²この手順.instanceでは、属性の値の名前を強調表示してoriginalValueCtrl + Fを押すことができます。たとえば、originalValue属性の値がであるActions/Window/org-netbeans-core-windows-actions-RecentViewListAction.instance場合は、パーツのみを強調表示しますorg-netbeans-core-windows-actions-RecentViewListAction.instance。ここでのポイントは、アクションが定義されている場所を見つけることです(レイヤーファイルのこの部分は、メニューにアクションを追加するだけです)。

于 2012-05-02T16:51:59.387 に答える
5

上でうまく説明したことに加えて、XMLファイルの内容を見なくても独自のグローバルメニュー項目を追加する簡単なトリックがあります。

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

PS:メニューバーの場合と同じように、ツールバーにカテゴリを追加することもできます。ありがとうございました

于 2012-12-06T22:19:15.077 に答える
2

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

于 2012-05-02T15:19:07.390 に答える