6

有谁知道如何编辑 Netbeans 平台创建的骨架中显示的菜单?

提前感谢您花时间帮助我。

4

3 回答 3

13

序言:编辑平台中存在的菜单项的唯一方法是通过您自己的模块之一。这意味着为了删除或重命名另一个模块中的菜单项,您必须首先将一个模块添加到您的应用程序中。您的应用程序本身不是一个模块,而是一个(潜在的)模块集合。

为基于 NB 平台的应用程序编辑菜单的最简单方法如下:

  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 中找到的值的 Bundle 节点

菜单项的名称将位于此 Bundle 的节点中。只需编辑它,它将在您的应用程序中更改。这里的关键是找到命名菜单项的 Bundle。

这是替换菜单项操作的方法:

  1. 按照上一个大纲中的步骤 1 和 2
  2. 获得声明后,搜索 (Ctrl + F) 相同文件中的originalFile值(您只是在寻找.instance声明)²
  3. 找到定义动作的位置后,将结构复制到图层文件
  4. 使用该delegate属性,您可以重新定义用于此菜单项的操作

这里的重点是覆盖层文件中菜单项的动作定义,将动作替换为您自己的动作。您还可以使用此技术覆盖操作的显示名称,但如果您不需要替换操作,则品牌技术更简单。


¹如果您的模块没有图层文件,则需要先创建一个图层文件,然后才能使用此技术。这要求您layer.xml在模块的一个包中创建一个文件。然后您需要使用以下命令在您的 Modules Manifest 文件中注册此文件OpenIDE-Module-Layer: com/example/mymodule/layer.xml

²对于这一步,您可以突出显示属性值的.instance名称,originalValue然后按 Ctrl + 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节点以展开其子节点,这是两个文件夹:
    • 这一层
    • 上下文中的这一层
  3. 展开“上下文中的这一层”节点并转到子文件夹菜单栏
  4. 右键单击并在Menu Bar中添加一个新文件夹(将其命名为History eg)。这个新文件夹的名称将用作主 GUI 窗口的全局菜单中的一个类别。
  5. 要将子菜单项添加到此全局菜单,请右键单击您的模块,选择new->action action,当系统要求您选择要放置此子菜单的菜单时,请选择History

PS:您也可以像为Menu Bar一样向Toolbar添加类别。谢谢

于 2012-12-06T22:19:15.077 回答
2

我不确定您到底想做什么,但 layer.xml 文件通常是进行此类更改的地方。

于 2012-05-02T15:19:07.390 回答