Java Solaris 加入Sun中国技术社区 我的社区 注册说明
 
JDK 6.0 API 中文版
 
 
 
 
Java API 文档中文版
NetBeans:您的第一个插件
 
By Silveira, 3/17/08  

NetBeans 的 模块化架构 支持通过 Plugin Manager 轻松地添加和删除(拔插)功能。

还可以使用 NetBeans 方便地创建新插件。

 

步骤 1:新模块。

单击 File → New Project 创建一个新项目。

Netbeans:File → New Project
图 1. 创建一个新项目

Categories 中选择 NetBeans Module 并在 Projects 中选择 Module

Netbeans New Module
图 2. 创建一个新模块

单击 Next 按钮。

在下一个屏幕中,您可以选择模块的名称,例如 HelloYou。其他选项保留默认值。

Netbeans 模块名称和位置
图 3. 为模块命名

现在,您必须设置包的基本名称,例如 org.yourorg.helloyou

基本模块配置
图 4. 包名称

现在您拥有了一个空的模块,但我们还需要一些操作。

步骤 2:添加操作。

在源包中单击鼠标右键,并选择 New → Actionaction

Netbeans 添加操作n
图 5. 添加一些操作

现在我们将填写另一个向导。第一个屏幕与 Action Type 有关。保留所有默认值(选择 Always Enabled 选项)并单击 Next 按钮。

Action Type
图 6. 填写 Action Type。

GUI Registration 屏幕中我们可以设置操作作为菜单项出现的位置。选择 Menu 文件并选择 Global Toolbar Button 选项。在 Toolbar 中选择 Build 并在 Position 中选择 Profile Main Project…- HERE。单击 Next 按钮。

Gui 注册
图 7. GUI 注册。

现在我们将设置 Name, Icon and Location 屏幕。在 Class Name 中选择 HelloAction。Display Name 是类在菜单中的出现方式,因此我们可以给它留有一定空间。您应该选择一个尺寸为 16×16 的按钮。在同样的目录中您可以放置一个 24×24 的按钮。如果您的 16×16 按钮被命名为 ball.png,那么您的 24×24 按钮应命名为 ball24.png。不要介意按钮放在什么位置,它会自动被复制到模块目录下。现在单击 Finish 按钮。

Netbeans 名称按钮和位置。
图 8. 名称、图标和位置。

Pidgin Project 中我使用了一个微笑图标。

WinkWink24

单击 Finish 按钮后,您的项目应如下所示:

如下所示
图 9. 空操作。

此刻我们已经能测试模块了。要测试该模块,右键单击 拼图 HelloYou(拼图按钮)并选择 Install/Reload in Target Platform 选项。该操作将打开一个安装有模块的 NetBeans 新实例!

在目标平台中安装或重新加载
图 10. 在目标平台中安装/重新加载。

如果一切进行顺利,您将在工具栏中看到自己的按钮。

请注意微笑按钮
图 11. 看!我们已经得到了一个插件!

但是,如果单击微笑按钮,您会发现什么也没有发生。我们根本就没有定义任何操作。

步骤 3:创建依赖关系。

某一模块可以和其他模块建立依赖关系。当您试图安装某一模块时,NetBeans 将询问您是否安装模块的依赖关系。很像 Linux 的包系统。

在我们的模块属性屏幕中我们可以查看并设置模块的依赖关系。您可以右键单击 拼图 HelloYou,然后进入 Properties。完成相同操作的另一种方式是进入 File → “HelloYou” Properties

Helloyou 属性
图 12. File → “HelloYou” 属性。

Project Properties 屏幕的左侧 Libraries 中选择 Categories。其中列举 Java、 NetBeans 和模块的所有 Module Dependencies。在默认的情况下您将看到 Utilities API 模块依赖关系。

Netbeans 项目属性
图 13. 模块依赖关系。

单击 Add 按钮(靠近模块依赖关系的那个按钮)。您将看到 Add Module Dependency 屏幕上列举了所有的 NetBeans 模块。

Netbeans 添加模块依赖关系
图 14. 添加模块依赖关系

我们希望为 Dialogs API 添加一种依赖关系。在过滤器文本字段中键入“dialogs”。

Netbeans Dialogs API
图 15. Dialogs API。

选择模块 Dialogs API 并单击 OK 按钮。现在我们的模块已经有了两种依赖关系:Utilities APIDialogs API

更多的模块依赖关系
图 16. Dialogs API 和 Utilities API。

现在我们第一次整理代码。

在 HelloAction.java 文件中, HelloAction 类扩展了 CallableSystemAction(它是一个抽象类)。在 performAction() 方法中只有:

//TODO implement action body

我们将重新编写 performAction 方法:

public void performAction() {
String msg = "Hello NetBeans World!";
int msgType = NotifyDescriptor.INFORMATION_MESSAGE;
NotifyDescriptor d = new NotifyDescriptor.Message(msg, msgType);
DialogDisplayer.getDefault().notify(d);
}

您将看到一些警告(不能找到符号)。修复所导入的内容(Ctrl+Shift+I)。要测试您的模块,请再次执行以下操作:拼图HelloYouInstall/Reload in Target Platform。NetBeans 的新实例打开后,您将再次看到笑脸按钮。当您单击笑脸按钮时,NetBeans 将显示一段对话。

Netbeans Hello World
图 17. Hello NetBeans World。

让我们再做一些其他工作。我们使用 NotifyDescriptor.InputLine 与用户交谈。我们需要创建一个输入对话行,获取用户名称(如果单击 Ok 按钮),然后发送一条消息给他。

public void performAction() {
NotifyDescriptor.InputLine question;
question = new NotifyDescriptor.InputLine("Name:",
"What's your name?",
NotifyDescriptor.OK_CANCEL_OPTION,
NotifyDescriptor.QUESTION_MESSAGE);
 
if (DialogDisplayer.getDefault().notify(question) == NotifyDescriptor.OK_OPTION) {
String msg = "Hello "+question.getInputText()+"!";
int msgType = NotifyDescriptor.INFORMATION_MESSAGE;
NotifyDescriptor d = new NotifyDescriptor.Message(msg, msgType);
DialogDisplayer.getDefault().notify(d);
}
}

再次执行 PuzzleHelloYouInstall/Reload in Target Platform 操作。

在 NetBeans 实例打开之后,单击我们设计的微笑按钮。

键入您的名字

Hello Silveira

我们已经完成了 NetBeans 插件的创建!

关于 NetBeans 模块开发的详细信息: