官方中文教程:

本文档介绍了有关使用 NetBeans IDE 开发 NetBeans 插件模块的基础知识。您会出于以下两个原因之一来开发 NetBeans 插件模块:

  • 扩展 NetBeans IDE。可以使用新功能非常方便地扩展 IDE 的功能。例如,通过编写一些插件模块,您可以在 NetBeans IDE 中使用最喜爱的前沿技术。有关 NetBeans IDE 5.x 发行版本所提供的功能信息,请参见 NetBeans IDE 5.x 发行版本页
  • 在 NetBeans 平台上构建应用程序。可以使用 NetBeans 核心作为开发功能丰富的客户端应用程序的平台。通过重用该平台中提供的现成功能,可以节省很多开发时间。有关详细信息,请参见 NetBeans 平台主页

此入门指南主要介绍了上述第一种情况,但其中介绍的原则也适用于第二种情况。但是请注意,如果要了解有关在 NetBeans 平台上开发应用程序的信息,则功能丰富的客户端应用程序开发简介教程更适合您。

本教程旨在帮助您尽快入门。通过此教程,您将创建并安装一个简单的 NetBeans 插件模块。该插件模块会将一个新菜单项和一个工具栏按钮添加到 IDE 中。选择该菜单项或工具栏按钮时,将显示 NetBeans API 提供的 DialogDisplayer,其中包含文本 "I'm plugged in!"。

下面将介绍下列主题:

您可以在 20 分钟内学完本教程。

有关 NetBeans 插件模块的详细信息,请参见 NetBeans Web 站点上的 NetBeans 开发项目主页。如果您有任何问题,请访问 NetBeans 开发者常见问题解答,或者使用此页面顶部的反馈链接。

设置插件模块项目

在开始编写插件模块之前,您必须确保已安装了所有必需的软件,并且正确设置了项目。NetBeans 提供了一个向导,可用于设置插件模块所需的所有基本文件。


安装软件

在开始之前,您需要在计算机中安装以下软件:

  • NetBeans IDE 5.x(下载
  • Java Standard Development Kit (JDK™) 版本 1.4.2(下载)或版本 5.0(下载

创建 NetBeans 插件模块项目

  1. 选择“文件”>“新建项目”。在“类别”下,选择“NetBeans 插件模块”。 NetBeans 插件模块支持提供三种项目类型:
  • 模块项目。为单独插件模块创建模板。
  • 库包装模块项目。为一个或多个插件模块所需的外部 JAR 文件创建插件模块。
  • 模块套件项目。为一组相互依赖的插件模块和库包装模块(您希望将这些模块部署在一起)创建模板。
  1. 选择“模块项目”。单击“下一步”。
  2. 在“名称和位置”面板的“项目名称”中,键入 MyFirstModule。将“项目位置”更改为计算机上的任何目录,如 c:/mymodules。将“独立模块”单选按钮和“设置为主项目”复选框保留为选中状态。单击“下一步”。
  3. 在“基本模块配置”面板中,将“代码名称库”中的 yourorghere 替换为 myorg,以使完整的代码名称库变为 org.myorg.myfirstmodule。请注意,本地化包和 XML 层将存储在 org.myorg.myfirstmodule 包中。这些文件将执行以下操作:
  • 本地化包。为国际化指定特定于语言的字符串。
  • XML 层。在 NetBeans 系统文件系统中注册菜单和工具栏按钮等项。

单击“完成”。IDE 将创建 MyFirstModule

除本地化包和 XML 层外,该项目还包含以下重要文件:

  • 模块清单。声明此项目属于插件模块。此外,它还设定了一些特定于模块的设置,如 XML 层的位置、本地化包的位置以及模块版本。
  • 生成脚本。提供一个位置,可以在其中创建您自己的 Ant 目标并覆盖 nbproject/build-impl.xml
  • 项目元数据。包含一些信息,如项目的类型、内容、平台、类路径、依赖关系以及项目命令与 Ant 脚本目标之间的映射。
  • NetBeans 平台配置。包含 IDE 或平台使用的属性。
  • 每个用户的 NetBeans 平台配置。包含特定于 IDE 安装的属性。例如,如果通过 VCS 共享项目,则不会将在此文件中设置的任何属性签入到库中。可以将“NetBeans 平台配置”中的属性复制到此文件中,然后在每个文件中为属性指定不同的定义。此文件中的定义优先于“NetBeans 平台配置”中的那些定义。

在学习本教程期间,您不需要修改其中的任何文件。请注意,上面列出的重要文件分别是“文件”窗口中以下文件的逻辑视图:manifest.mf、build.xml、nbproject/project.xml、nbproject/platform.properties 和 nbproject/private/platform-private.properties。

创建菜单项和工具栏按钮

您可以使用 NetBeans 插件模块文件模板来建立基本的模块功能。使用文件模板时,IDE 将对您在 layer.xml 文件中创建的项进行注册。在使用向导创建文件模板之后,可以使用 NetBeans API 列表继续开发模块。


使用“操作”向导

  1. 在“项目”窗口中,右键单击项目节点,然后选择“新建”>“文件/文件夹”。在“新建文件”向导的“类别”下选择“NetBeans 模块开发”,然后在“文件类型”下选择“操作”。单击“下一步”。
  2. 在“操作类型”面板中,接受缺省设置。单击“下一步”。
  3. 在“GUI 注册”面板中,选中“全局菜单项”,然后选中“全局工具栏按钮”。设置以下值:
  • 类别:工具
  • 菜单:工具
  • 位置:工具 - 此处 - <分隔符>
  • 工具栏:生成
  • 位置:运行主项目 - 此处 - 调试主项目

在“全局菜单项”部分中选择“分隔符在前”和“分隔符在后”。

现在,您会看到以下内容:

请注意“GUI 注册”面板部分的以下相关信息:

  • 类别。指定操作在“选项”窗口的“快捷键映射”部分中的位置。
  • 全局菜单项。指定将操作注册为菜单项的菜单。也可以在此处设置菜单项在现有菜单项中的位置。
  • 全局工具栏按钮。指定将操作注册为按钮的工具栏。也可以在此处设置工具栏按钮在现有工具栏按钮中的位置。
  • 全局快捷键。指定将调用该操作的击键。
  • 文件类型上下文菜单项。指定将显示菜单项的文件类型的 MIME 类型。也可以在此处设置菜单项在现有菜单项中的位置及其分隔符。有关使用此字段的详细内容,请参见 NetBeans DataLoader 模块教程
  • 编辑器上下文菜单项。指定将显示菜单项的编辑器的 MIME 类型。也可以在此处设置菜单项在现有菜单项中的位置及其分隔符。有关使用此字段的详细内容,请参见 NetBeans 编辑器扩展模块教程

单击“下一步”。

  1. 在“名称、图标和位置”面板的“类名”中键入 MyFirstAction,然后在“显示名称”中键入 My First Action。在“图标”中,查找文件系统中的某个 16x16 像素图标。例如,可以在 NetBeans IDE 5.x 安装目录中的以下位置找到一些 16x16 像素图标: enterprise2/jakarta-tomcat-5.5.9/server/webapps/admin/images
  2. 单击“完成”。 IDE 将在 org.myorg.myfirstmodule 中创建 MyFirstAction.java,并在源代码编辑器中打开它。以下是您应该看到的内容(单击链接可查看相关的 NetBeans API Javadoc):
package org.myorg.myfirstmodule;

   import org.openide.util.HelpCtx;
   import org.openide.util.actions.CallableSystemAction;

   public final class MyFirstAction extends CallableSystemAction {

       public void performAction() {
   	// TODO implement action body
       }

       public String getName() {
       	return "My First Action";
       }

       protected String iconResource() {
        return "org/myorg/myfirstmodule/Groups.gif";
       }

       public HelpCtx getHelpCtx() {
        return HelpCtx.DEFAULT_HELP;
       }

       protected boolean asynchronous() {
        return false;
       }
   }

如“GUI 注册”面板中所指定的一样,IDE 会在 layer.xml

<filesystem>

    <folder name="Actions">
        <folder name="Tools">
            <file name="org-myorg-myfirstmodule-MyFirstAction.instance">
		<attr name="instanceClass" 
		  stringvalue="org.myorg.myfirstmodule.MyFirstAction"/>
            </file>
        </folder>
    </folder>

    <folder name="Menu">
        <folder name="Tools">
	    <attr name="org-openide-actions-ToolsAction.instance
			/org-myorg-myfirstmodule-MyFirstAction.shadow" 
			boolvalue="true"/>
            <file name="org-myorg-myfirstmodule-MyFirstAction.shadow">
		<attr name="originalFile" 
	          stringvalue="Actions/Tools/org-myorg-myfirstmodule-MyFirstAction.instance"/>
            </file>
	    <attr name="org-myorg-myfirstmodule-MyFirstAction.shadow/Separator1.instance"
		       boolvalue="true"/>
        </folder>
    </folder>

    <folder name="Toolbars">
        <folder name="Build">
	    <attr name="org-netbeans-modules-project-ui-RunMainProject.shadow
			/org-myorg-myfirstmodule-MyFirstAction.shadow" 
			boolvalue="true"/>
            <file name="org-myorg-myfirstmodule-MyFirstAction.shadow">
		<attr name="originalFile" 
		stringvalue="Actions/Tools/org-myorg-myfirstmodule-MyFirstAction.instance"/>
            </file>
	    <attr name="org-myorg-myfirstmodule-MyFirstAction.shadow
			/org-netbeans-modules-project-ui-DebugMainProject.shadow" 
			boolvalue="true"/>
        </folder>
    </folder>

</filesystem>
  1. 在源代码编辑器中,按如下所示填充 performAction() 方法:
public void performAction() {
        String msg = "I'm plugged in!";
	NotifyDescriptor d = new NotifyDescriptor.Message(msg, NotifyDescriptor.INFORMATION_MESSAGE);
	DialogDisplayer.getDefault().notify(d);      
   }

调用了 NotifyDescriptor 和 DialogDisplaye 的行带有下划线,并被标记为错误,与下图类似。这是因为尚未声明相关的包。我们将在下一步对它们进行声明。

  1. 在“项目”窗口中右键单击 MyFirstModule 项目节点,然后选择“属性”。在“库”窗格中,单击“添加”。键入 notifyd,请注意返回的列表将变窄,直至显示包含 NotifyDescriptor 的包为止。

单击“确定”。此时会将对话框 API 添加到“模块依赖关系”列表中。单击“确定”进行确认,然后退出“项目属性”对话框。

  1. 在源代码编辑器中,按 Alt-Shift-F 组合键。此时会将两个新的 import 语句添加到源文件的顶部,并且红色下划线消失。以下是新的 import 语句(单击链接可查看相关的 NetBeans API Javadoc): import org.openide.DialogDisplayer;
    import org.openide.NotifyDescriptor;

插件模块的编写现已完成。接下来,您需要安装并使用它。

安装并使用插件模块

IDE 使用 Ant 生成脚本来生成并安装插件模块。在创建插件模块项目时,将创建该生成脚本。


安装插件模块

  • 在“项目”窗口中,右键单击 MyFirstModule 项目,然后选择“在目标平台中安装/重新装入”。 将在目标平台中生成并安装插件模块。目标平台是在“工具”>“NetBeans 平台管理器”中设置的。目标平台将会打开,以便试用新的插件模块。缺省目标 IDE 或平台是开发 IDE 当前实例使用的安装。

使用 NetBeans 插件模块

  1. 在新打开的 IDE 菜单栏中,您会看到新的菜单和菜单项以及在“操作”向导中指定的图标:
  2. 选择用于调用 MyFirstAction.java 中的 performAction 方法的菜单项。您会看到 JOptionPane 及其消息:
  3. 单击工具栏按钮。由于它调用相同的操作,因此具有相同的结果。它应该如下所示: