按照如下做法去做,利用NetBeans APIs去增强应用程序的功能集合。具体做法,你创建一个被工具栏上的一个按钮调用的动作,然后创建一个包含JLabel和JTextField的Swing面板作为GUI组件。最终你重写动作的getToolbarPresenter() 方法返回这个JPanel显示在工具栏中来代替按钮。当这个模块被安装后,用户在JTextField中键入查询字符串并按下回车,同时URLDisplayer类就把这个字符串发送到IDE的默认浏览器中,浏览器打开并显示查询结果。
更多有关模块的信息,参见NetBeans模块与富客户端应用开发 的NetBeans站点。如果有疑问,请访问NetBeans开发疑难解答或者使用位于文档底部的反馈列表。
软件安装
在你开始本NetBeans 6.0教程之前,你应安装下列软件到你的计算机中:
NetBeans IDE 6.0 (下载)
Java SE 5.0或者更高版本(下载)
安装范例程序
看本教程的最终结果,安装范例模块然后在IDE中测试这个Google工具栏:
1.下载并解压缩附件
2.在IDE中,选择 文件>打开项目 然后定位到解压后文件的位置。选择模块项目然后点击打开项目文件夹。模块项目将在IDE中打开然后你将在项目窗口中看到如下所示的结果(根据需要展开结点)
3.右键单击项目结点并选择 安装/重新加载到目标平台。默认地,目标平台是当前开发模块项目的IDE。然后目标平台打开模块被安装。
4.通过测试来验证是否与期待的一致。
现在你已经看到了最终结果,你可以重新创建和改写来学习每一个部分。
创建模块项目
开发模块时,你必须确保项目结构的正确。netBeans IDE提供一个模块工程向导来生成所有模块所需的基本文件。
1.选择 文件>新建项目。在类别选项下,选择NetBeans插件模块。在工程下,选择模块项目。单击下一步。
2.在名字和位置面板中,键入“GoogleToolbar”到项目名称文本域。改变项目路径到你机器上的任意目录。保留独立模块选项设定并设置为主项目,单击下一步。
3.在基本模块设定面板中,在代码基本名字一栏替换“yourorghere”为“myorg”,使整个代码基本名字是org.myorg.googletoolbar。其余保持不变。单击完成。
IDE创建GoogleToolbar项目。这个项目包含了所有源码和项目元数据,例如项目的Ant构建脚本。这个项目在IDE中打开,你可以在项目窗格中看到它的逻辑结构,在文件窗格中看到它的文件构成。例如项目窗格中应该看到如下结果:
有关上述每个文件的基本信息,参见NetBeans模块开发简介
为模块编码
创建Action
1.右键单击项目结并选择新建>动作。单击下一步
2.在动作类型面板中保持默认设置,这将导致IDE创建的Action是CallableSystemAction的子类,如下所示:
单击下一步
3.在GUI注册面板,在类别下拉列表中选择 编辑。类别下拉列表控制一个Action在“快捷键映射”编辑器部分中的位置。接下来反选全局菜单项并选择全局工具栏按钮。在工具栏下拉列表,选择编辑,然后在下拉列表的位置,选择Find...-HERE,如下图所示:
单击下一步
4.在名称与定位面板,键入GoogleAction作为类名,Google Action作为显示名,浏览一个16*16尺寸的图标。实际上你可以不使用图标只是你将显示下一步创建的JPanel表单。可是新的Action向导需要你指定一个图标,因此这个图标可以是任意尺寸。单击完成。注意GoogleAction.java被添加到项目窗格的org.myorg.googletoolbar包中。
创建JPanel
1.右键单击项目结点并选择新建>其他。在类别列表中,选择Swing GUI Forms,在项目列表中选择JPanel Form,单击下一步
2.在名字和定位面板中,键入GooglePanel作为类名并从下拉列表中选择包名。单击完成。GooglePanel.java被添加到包中并在源代码编辑器以设计视图的方式被打开。
3.将光标定位到JPanel右下角,然后选择JPanel并拖拽光标改变它的大小,使它的长、高和工具栏一样,如下所示
4.从托盘直接拖拽一个JTextField项和一个JLabel项到JPanel,然后重新设置JPanel和其他两个组件的尺寸是它们做适合的布局组合,最后单击JLabel改变显示文字为“Google:”,然后删除JTextField的默认的文字。你的JPanel应该像下图所示:
5.确保属性编辑窗格保持打开,然后右键单击JTextField并选择 事件>Key>keyTyped。这将在GooglePanel.java源代码中生成jTextField1KeyTyped()方法。在代码编辑器中看到如下内容:
6.在代码编辑器中,在GooglePanel.java的代码视图,向jTextField1KeyTyped()方法中填写如下内容:
- private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
- int i = evt.getKeyChar();
- if (i==10){//The ENTER KEY
- // we display the google url.
- try{
- URLDisplayer.getDefault().showURL
- (new URL("http://www.google.com/search?hl=en&q="+jTextField1.getText()+"&btnG=Google+Search"));
- } catch (Exception eee){
- return; //nothing much to do
- }
- }
- }
如果需要,在代码编辑器中单击右键并选择代码格式化
排除错误
注意到代码的一些行标记了红色下划线指示错误。那是因为还没有导入所需要的包。把鼠标光标定位到 URLDisplayer左边红色下划线高亮显示的灯泡图标处,一个提示将会显示指示了出错的原因:
为了解决这个错误,你需要使用HtmlBrowser.URLDisplayer这个类,它包含在org.openide.awt包中,为了使你的工程可以访问,需要按照如下方法去做:
1.在项目窗格中右键单击项目节点并选择属性。在项目属性对话框中,选择类别标题下的库。然后,在模块依赖性下单击添加按钮。然后添加模块依赖对话框将弹出显示。
2.在添加模块依赖对话框顶部的过滤文本框中,键入URLDisplayer然后注意返回给用户的选择模块逐渐变窄,直到只剩下UI Utilities API
单击确定,然后再单击确定离开项目属性对话框
3.在代码编辑器中单击右键并选择修复导入。修复导入对话框弹出,对不认可的类列出了建议的路径:
单击确定,IDE将为GooglePanel.java创建如下导入语句:
import java.net.URL;
import org.openide.awt.HtmlBrowser.URLDisplayer;
同时也会注意到代码编辑器中的错误都不见了。
重写getToolbarPresenter()方法
由于你刚刚创建的JPanel是实际显示Google工具栏的组件,你需要重写Action类的getToolbarPresenter()方法。在GoogleAction.java中,如下去做:
1.在类的声明下面,声明下面的变量
GooglePanel retValue = new GooglePanel();
2.定义getToolbarPresenter()方法并返回retValue变量
- public java.awt.Component getToolbarPresenter() {
- return retValue;
- }
编译,安装并使用模块
NetBeans利用一个Ant构建脚本在IDE中编译和安装你的模块。当你在上述的创建模块项目时,构建脚本就被创建了。现在模块已做好编译的准备并添加到了IDE中,你可以利用NetBeans IDE的Ant支持做如下步骤:
1.在项目窗格,右键单击GoogleToolbar项目结点并选择 安装/重加载到目标平台。然后模块被构建并安装到一个IDE新的实例中去。默认的缺省目标平台是开发IDE的当前实例所使用的安装。目标平台打开时你可以测试新模块。
2.当成功安装后,模块添加了一个新按钮到IDE的编辑工具栏。注意尽管工具栏按钮不会显示一个图标,而是显示你创建的JPanel:
3.在文本域键入一个查询字符串
4.按下回车。IDE的默认浏览器将会启动。Google URL和你键入的查询字符串被发送到浏览器然后一个查询将被执行。当查询结果被返回,你可以在浏览器中看到它们。
共享模块
现在你已经构建了一个模块提高IDE,那为什么不和其他开发员共享?NetBeans IDE提供了一个简单的途径来创建二进制NetBeans模块文件(.nbm)去允许其他开发员将它集成到自己当前的IDE中来共享你的经验。实际上这个是上述的安装实例代码那一步,创建一个模块二进制文件,如下去做:
在项目窗口,右键单击GoogleToolbar项目结点并选择创建 NBM。新的NBM文件被创建然后你可以在文件窗格中看到它。
【编辑推荐】