本教程主要是为了演示 NetBeans Node API 的各个方面。它介绍如何实现以下内容:
如何添加、重命名和删除节点
如何显示子节点
如何更改节点列表
如何创建属性表
如何指定属性
如何执行其他常用任务
由于 NetBeans Node API 是最普遍的 API 之一,并且反应了存在节点依存关系的信息,因此,本示例很重要。您通过该实时信息的界面进行交互。
安装完软件之后,本教程可以在 60 分钟之内完成。
有关使用 NetBeans 模块的详细信息,请参阅 NetBeans 网站上的 NetBeans Development Project 主页。如果有问题,请访问 NetBeans Developer FAQ 或使用本页顶部的反馈链接。
了解示例
开始编写插件模块之前,必须确保您具备所有必要的软件。此外,您可能想在亲自构建之前使用示例。了解示例介绍在本教程的其余部分您所要做的事项。
安装软件
开始之前,需要在您的计算机上安装以下软件:
NetBeans IDE Dev(下载)
Java Standard Development Kit (JDK!") version 1.4.2(下载)或 5.0(下载)
安装示例
采用以下步骤来安装示例:
解压缩附加的文件。
在 IDE 中,选择 File>Open Project,然后浏览到包含已解压缩文件的文件夹。打开模块项目。其形式如下:
右键单击项目节点并在 Target Platform 中选择 Install/Reload。将打开目标平台并安装该模块。
介绍示例
打开 Runtime 窗口 (Ctrl-5),注意到您拥有一个具有很多(大约 50 个)子节点的新节点,每个子节点都根据特定 Java 属性进行了标记。当您右键单击主节点和子节点时,将出现上下文菜单项:
对于子节点,Java 运行时的一般属性用于配置基本机理,如搜索字体的路径、Java 虚拟机 (JVM) 的位置、默认语言环境等等。通常是字符串键,类似于 name.name.name 以及关联的字符串值。可以从 Java 语言中查询或设置这些值。此外,可以使用它们设置 JVM 启动时的默认值。当展开 System Properties 节点时,每个键对应显示一个节点,而根据每个键对每个节点都进行了标记。例如:
例如,值 java.vm.vendor 可能显示 Sun Microsystems, Inc.。
值 path.separator 可能显示分号(取决于您的配置)。
值 user.language 可能显示值 English(取决于您的配置)。
使用示例:
显示属性表。 右键单击子节点并选择 Properties。显示属性表和一个包含两个属性的 Properties 选项卡。第一个属性标签为 Name,它提供与该节点(键)相同的名称;另一个属性标签为 Value,显示属性的字符串值。
重命名属性。 单击子节点,然后再次单击它。这样您可以在合适的位置重命名键,从而保持相同的值。也可以单击属性表中的 Name 属性或者右键单击子节点并选择 Rename。
更改值。 单击属性表中的 Value 选项卡并键入新的值。这会将系统属性重置为所输入的值。
添加属性。右键单击主 System Properties 节点,然后选择 Add System Property。这样能向列表中添加新系统属性。
删除属性。 选择属性并按 Delete。这样将移除该属性。
刷新列表。右键单击 System Properties 节点,然后选择 Refresh_PB_PB_PB_PB_PB_PB_PB。这会提示该模块重新检查值,并根据需要刷新列表。
介绍源
System Properties 示例由主文件和支持文件组成。
主文件。 该模块的主文件是 Java 类(在下图中选中的类):
下面按照字母顺序介绍 Java 类:
文件 | 描述 |
AllPropsChildren.java | 该子对象负责跟踪 System Properties 节点下的节点列表。当第一次询问该列表时,它检索所有系统属性并让该节点实现来跟踪所有系统属性名称。执行此操作的接口是名为 Children 的类。 |
AllPropsNode.java | 该节点指定它下面的子节点,并要求使用 AllPropsChildren 来跟踪子节竦牧斜怼8媚?榉浅W⒁庹庑┦孪睿如它的上下文菜? |
OnePropNode.java | 这是代表单个属性的节点,它是 AbstractNode。它的构造方法要求用户以字符串的形式提供键。对于每个系统属性名称,使用 OnePropNode 来显示。当用户展开系统属性节点时,它构建键的列表,然后创建相应数量的 OnePropNodes。每个 OnePropNode 显示一个键,不直接与它的父节点交互 -- 它的知识仅限于单个系统属性和如何处理它,以及在有更改时通知 PropertiesNotifier。这种设计更容易重新使用此类节点,包括将它们放置在其他上下文中。 |
PropertiesNotifier.java | 在有更改(包括添加、删除或重命名属性)时或属性值更改时管理路由事件。 |
Refresh_PB_PB_PB_PB_PB_PB_PBPropsAction.java | 该操作出现在 System Properties 下的弹出菜单中,标签为 Refresh_PB_PB_PB_PB_PB_PB_PB。它强制进行刷新,基于系统属性的最新状态更新信息显示。 |
支持文件。 该模块的支持文件位于 org.myorg.systemproperties 包以及 Important Files 节点(在下图中选中的节点)中:
下面按照字母顺序介绍 org.myorg.systemproperties 包中的支持文件:
文件 | 描述 |
allPropsIcon.gif | System Properties 节点的图标。 |
Bundle.properties | 这是标准 Java 属性文件,它使用语法 Key=Value。键是出现在源代码中内容的代码名称,它的值表示将向用户显示的内容。该文件对于本地化特别有用。例如,通过创建 Bundle_ja.properties 之类的属性文件并用日语填写所有值,该模块在用户以日语模式运行 IDE 时将自动用日语显示所有内容。 |
layer.xml | 在 Runtime 窗口中将 AllPropsNode.java 注册为一个节点。 |
onePropIcon.gif | 子节点的图标。 |
按照文件出现在 Projects 窗口中的顺序介绍 Important Files 节点中的文件:
文件 | 描述 |
模块清单(Module Manifest) | 将项目声明为模块。 |
构建脚本 | 包含 Ant 目标,用于构建项目。 |
项目元数据 | 包含项目元数据,如项目的依存关系。 |
项目属性 | 包含项目属性。 |
NetBeans Platform 配置 | 包含平台属性。 |
每用户 NetBeans Platform 配置 | 包含特定用户的属性。 |
有关每个 Important Files 的基本信息,请参阅 NetBeans 插件模块的快速入门指南。
设置模块项目
开始编写模块前,必须确保正确地设置了项目。NetBeans IDE Dev 提供一个向导,用于设置模块所需的所有基本文件。
创建模块项目
选择 File > New Project。在 Categories 下,选择 NetBeans Plug-in Modules。在 Projects 下,选择 Module Project 并单击 Next。
在 Name and Location 面板中,在 Project Name 中键入 System Properties。将 Project Location 更改为您计算机上的任何目录,如 c:mymodules。选中 Standalone Module 单选按钮。选中 Set as Main Project 复选框。单击 Next。
在 Basic Module Configuration 面板中,用 myorg 替换 Code Name Base 中的 yourorghere 并将“System Properties”更改为“systemproperties”,从而整个 Code Name Base 为 org.myorg.manifestfiletype。在 Module Display Name 中填入 System Properties。留出本地化包和 XML 层的位置,以便它们存储在名为 org.myorg.systemproperties 的包中。单击 Finish。
IDE 创建 System Properties 项目。该项目包含所有资源和项目元数据,如该项目的 Ant 构建脚本。该项目r IDE 中打开。您可以在 Projects 窗口 (Ctrl-1) 中查看其逻辑结构,在 Files 窗口 (Ctrl-2) 中查看其文件结构。例如,现在 Projects 窗口应该如下所示:
有关以上每个文件的基本信息,请参阅 NetBeans 插件模块的快速入门指南。
指定模块的依存关系
您需要将几个属于 NetBeans API 的类设为子类。每个类都将被声明为 Module 依存关系。使用 Project Properties 对话框来执行此操作。
在 Projects 窗口中,右键单击 System Properties 项目,然后选择 Properties。在 Project Properties 对话框中,单击 Libraries,然后单击 Add...。现在应该看到下图:
对于以下每个 API,在 Libraries 面板中,单击“Add...”,从 Module 列表中选择名称,然后单击 OK 确认:
Actions API
对话框 API
节点 API <