<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <!-- -*- xhtml -*- -->
    <title>针对 NetBeans 平台 6.8 的 NetBeans 插件快速入门</title>
    <meta name="AUDIENCE" content="NBUSER">
    <meta name="TYPE" content="ARTICLE">
    <meta name="EXPIRES" content="N">
    <meta name="developer" content="gwielenga@netbeans.org">
    <meta name="indexed" content="y">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
    <meta name="description"
          content="A guide describing how to implement a Google Toolbar Module into NetBeans IDE.">
    <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
</head>

<!-- Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. -->
               <!-- Use is subject to license terms. -->

<body>
<h1><a name="top"></a>NetBeans 插件快速入门</h1>

    <p>欢迎了解有关开发 NetBeans 插件的知识！

  <p>本教程将指导您为 NetBeans IDE 创建一个新的工具栏，从而为 NetBeans 插件的开发工作流程提供一个快速简介。学习完本教程后，您将对如何为 NetBeans IDE 创建、生成和安装插件有一个基本了解。
   
   <p>完成本教程后，您可以继续参阅 <a href="https://netbeans.org/kb/trails/platform_zh_CN.html">NetBeans 平台学习资源</a>。该学习资源提供了综合性教程，这些教程重点介绍适用各种应用程序类型的一系列 NetBeans API。如果您不希望创建 &quot;Hello World&quot; 应用程序，则可以跳过本教程，而直接阅读学习资源。 

   <p><b class="notes">注意：</b>本文档使用的是 NetBeans IDE 6.8 发行版。如果使用的是早期版本，请参见<a href="67/nbm-google_zh_CN.html">本文档的 6.7 版</a>。</p>
   
   <p><b>目录</b></p>
         
   <img  src="../images/articles/68/netbeans-stamp-65-67-68.gif" class="stamp" width="114" height="114" alt="本页上的内容适用于 NetBeans IDE 6.5、6.7、6.8" title="本页上的内容适用于 NetBeans IDE 6.5、6.7、6.8"> </p>
      <ul class="toc">
        <li><a href="#creating-module-project">设置模块项目</a></li>
        <li><a href="#coding-module">编写模块代码</a>
        <ul>
            <li><a href="#creating-action">创建操作</a></li>
            <li><a href="#creating-panel">创建 JPanel 窗体</a></li>
            <li><a href="#resolving-errors">解决错误</a></li>
            <li><a href="#overriding">实现 Presenter.Toolbar</a></li>
        </ul>
        </li>
        <li><a href="#compiling">编译、安装和使用模块</a>
        <li><a href="#sharing-plugin">共享模块</a></li>
      </ul>
         
<p><b>要学习本教程，您需要具备下表中列出的软件和资源。</b></p>

 <table>
        <tbody>
            <tr>
                <th class="tblheader" scope="col">软件或资源</th>
                <th class="tblheader" scope="col">要求的版本</th>
            </tr> 
            <tr>
                <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                <td class="tbltd1">6.5 或更高版本</td>
            </tr>
            <tr>
                <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Java Developer Kit (JDK)</a></td>
                <td class="tbltd1">版本 6 或<br/>版本 5</td>
            </tr>
        </tbody>
    </table>
    
   <p class="tips">（可选）要解决疑难问题，可以<a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=13794">下载完整的样例</a>并查看其源代码。
    
    <p>您在本教程中创建的工具栏将如下所示：</p>

    <img src="../images/tutorials/google/60/googlebar-2.png" border="1"
            alt="显示样例搜索字符串的 Google 工具栏">
        
    <p><p>当用户在以上工具栏中按 Enter 键时，将打开 IDE 的缺省浏览器，同时工具栏中的文本会发送至 Google 搜索，并在打开的浏览器中显示搜索结果。要创建此工具栏，您可以使用 <a href="http://bits.netbeans.org/dev/javadoc/">NetBeans API</a> 来增强 IDE 的功能集。具体而言，您将创建一个由工具栏中的按钮所调用的操作。然后，再创建一个包含 GUI 组件 <tt>JLabel</tt> 和 <tt>JTextField</tt> 的 Swing JPanel。最后，您将实现用于返回 JPanel 的 <a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/actions/Presenter.Toolbar.html"><tt>Presenter.Toolbar</tt></a>，以使 JPanel 显示在工具栏而不是按钮中。
    
<!-- ===================================================================================== -->  

<br>
<h2 class="tutorial"><a name="creating-module-project"></a>设置模块项目</h2>

<p>开发模块时，必须确保正确设置项目的结构。NetBeans IDE 提供了一个模块项目向导，用于设置模块所需的全部基本文件。</p>
    
<ol>
    <li>选择“文件”&gt;“新建项目”(Ctrl+Shift+N)。在“类别”下选择“NetBeans 模块”。在“项目”下选择“模块”。单击“下一步”。</li>
    <li>在“名称和位置”面板的“项目名称”字段中键入 <tt>GoogleToolbar</tt>。将项目位置更改为计算机上的任意目录。将“独立模块”选项和“设置为主项目”复选框保留为选中状态。单击“下一步”。</li>
    <li>在“基本模块配置”面板的“代码名称基”中键入 <tt>org.myorg.googletoolbar</tt>。 
    <li>选择“生成 XML 层”。保留本地化包和 XML 层文件的位置，以将其存储在名为 <tt>org/myorg/googletoolbar</tt> 的包中。单击“完成”。</li>
</ol>
    
<p>IDE 将创建 <tt>GoogleToolbar</tt> 项目。此项目包含所有源代码和项目 meta 数据，例如项目的 Ant 生成脚本。此项目将会在 IDE 中打开。您可以在“项目”窗口 (Ctrl+1) 中查看其逻辑结构，在“文件”窗口 (Ctrl+2) 中查看其文件结构。

 <p>如果展开“重要文件”节点，则可以打开“模块清单”，其内容如下所示：

<pre class="examplecode">Manifest-Version: 1.0
OpenIDE-Module: org.myorg.googletoolbar
OpenIDE-Module-Layer: org/myorg/googletoolbar/layer.xml
OpenIDE-Module-Localizing-Bundle: org/myorg/googletoolbar/Bundle.properties
OpenIDE-Module-Specification-Version: 1.0</pre>

<p>有关这些特定于 NetBeans 的清单键的详细信息，请参阅 <a href="http://bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html">NetBeans 模块 API</a> Javadoc 描述。

    
<br>


<!-- ===================================================================================== -->

<br>
<h2><a name="coding-module"></a>编写模块代码</h2>

<p>要编写模块代码，需要完成以下步骤：</p>

<ul>
    <li><a href="#creating-action">创建操作</a></li>
    <li><a href="#creating-panel">创建 JPanel</a></li>
    <li><a href="#resolving-errors">解决错误</a></li>
    <li><a href="#overriding">重写 getToolbarPresenter()</a></li>
</ul>

<div class="indent">
    <h3 class="tutorial"><a name="creating-action"></a>创建操作</h3>
    
    <ol>
        <li>右键单击项目节点，然后选择“新建”&gt;“操作”（如果未显示“操作”，请选择“其他”，然后在“新建文件”向导的“类别”下选择“模块开发”，此时应显示“操作”）。单击“下一步”。</li>
        <li>在“操作类型”面板中保留缺省设置（IDE 可以通过此设置创建作为 <tt>ActionListener</tt> 子类的操作），如下所示：
        
            <br><br>
            <img src="../images/tutorials/google/65/action-wiz-1.png" alt="“新建操作”向导的第 1 步">
            
            <br><br>
            单击“下一步”。
        
        <li>在“GUI 注册”面板中，从“类别”下拉列表中选择“文件”。“类别”下拉列表用于控制操作在 IDE 的快捷键编辑器中的显示位置。接下来，取消选中“全局菜单项”，然后选中“全局工具栏按钮”。在“工具栏”下拉列表中选择“文件”，然后在“位置”下拉列表中选择“下拉列表中的任何位置<i></i>”，如下所示：
        
            <br><br>
            <img src="../images/tutorials/google/65/action-wiz-2.png" />
            
            <br><br>       
            单击“下一步”。
        
        <li><p>在“名称和位置”面板的“类名”中键入 <tt>GoogleAction</tt>，在“显示名称”中键入 <tt>Google Action</tt>。找到一个尺寸为 16x16 像素的图标。实际上，您不会用到这个图标，真正显示的图标将是下面一节中创建的 JPanel 窗体。只是，“新建操作”向导要求指定一个图标。因此，该图标可以是任意尺寸，因为您根本不会用到它。单击“完成”。</p> 
            <p><b class="notes">注意：</b><tt>GoogleAction.java</tt> 将被添加到“项目”窗口的 <tt>org.myorg.googletoolbar</tt> 包中。
         
            </li>
    </ol>
    
    <h3 class="tutorial"><a name="creating-panel"></a>创建 JPanel</h3>
    <p>在本节中，将创建一个 JPanel 作为工具栏，它将显示在应用程序主工具栏中。
    <ol>
        <li>右键单击项目节点，然后选择“新建”&gt;“其他”。在“类别”下，选择“Swing GUI 窗体”。在“项目”下选择“JPanel 窗体”。单击“下一步”。</li>
        <li>在“名称和位置”面板的“类名”中键入 <tt>GooglePanel</tt>，然后从下拉列表中选择包。单击“完成”。<tt>GooglePanel.java</tt> 将被添加到该包中，并在源代码编辑器的“设计”视图中将其打开。</li>
        <li>将光标放在 JPanel 的右下角，然后选择 JPanel 并拖动光标来调整大小，以使其宽度和长度与工具栏类似，如下所示：
        
            <br><br>
            <img src="../images/tutorials/google/60/jpanel-2.png" border="1" alt="调整大小后的 JPanel"></li>
        
        <li>将一个 JTextField 项和一个 JLabel 项从组件面板 (Ctrl+Shift+8) 直接拖到 JPanel 中，然后调整 JPanel 及另外两个项的大小，以使它们排放适宜。最后，单击 JLabel 并将其文本更改为 <tt>Google:</tt>，然后删除 JTextField 中的缺省文本。现在，您的 JPanel 应该与下面显示的图像类似：
        
            <br><br>
            <img src="../images/tutorials/google/60/jpanel-3.png" border="1" 
                alt="JPanel 中包含的 JTextField 和 JLabel"></li>
        
        <li>确保属性检查器（“窗口”&gt;“导航”&gt;“检查器”）处于打开状态，然后右键单击 JTextField 并选择“事件”&gt; &quot;Key&quot; &gt; &quot;keyTyped&quot;。这将在 <tt>GooglePanel.java</tt> 源代码中生成一个 <tt>jTextField1KeyTyped()</tt> 方法，并将其显示在源代码编辑器中，如下所示：
        
            <br><br>
            <img src="../images/tutorials/google/60/jpanel-4.png" border="1" 
                alt="在源代码中生成的 jTextField1KeyTyped() 方法"></li>
        
        <li>在源代码编辑器的 <tt>GooglePanel.java</tt>“源”视图中，填写 <tt>jTextField1KeyTyped()</tt> 方法，如下所示（插入的文本以<strong>粗体</strong>显示）：
        
        <pre class="examplecode">    
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
    <strong>int i = evt.getKeyChar();
    if (i==10){//The ENTER KEY
        // we display the google url.
        try{
            URLDisplayer.getDefault().showURL
                    (new URL(&quot;http://www.google.com/search?hl=en&amp;q=&quot;+jTextField1.getText()+&quot;&amp;btnG=Google+Search&quot;));
        } catch (Exception eee){
            return;//nothing much to do
        }
    }</strong>
}</pre>
        </li>
    </ol>
        
    <p>如果需要，请在源代码编辑器中单击鼠标右键，然后选择“格式化”(Alt+Shift+F)。</p>
           
    <h3 class="tutorial"><a name="resolving-errors"></a>解决错误</h3>
            
    <p>请注意，某个代码行带有红色下划线，这表示存在错误。其原因是尚未导入所需的包。将光标置于紧邻 <tt>URLDisplayer</tt> 所在行（带有红色下划线）左侧的栏中显示的灯泡图标上。将显示一条工具提示，说明出现此错误的原因：
        
        <br><br>
        <img src="../images/tutorials/google/60/tooltip.png" border="1" 
            alt="源代码编辑器中的 URLDisplayer 错误工具提示"></p>
                        
    <p>为了解决此错误，需要让您的项目可访问 <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/HtmlBrowser.URLDisplayer.html">HtmlBrowser.URLDisplayer</a></tt> 类（包含在 <a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/package-summary.html"><tt>org.openide.awt</tt></a> 包中）。为此，请执行以下步骤：</p>
        
    <ol>
        <li>右键单击“项目”窗口中的项目节点，然后选择“属性”。在显示的“项目属性”对话框中，选择“类别”标题下的“库”。然后，在“模块依赖关系”下，单击“添加”按钮。将显示“添加模块依赖关系”对话框。</li>
        <li>在“添加模块依赖关系”对话框顶部显示的过滤器文本框中，开始键入 <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/HtmlBrowser.URLDisplayer.html">URLDisplayer</a></tt>，请注意返回的模块的选择范围会逐渐缩小，直到列表中仅留有“<a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/overview-summary.html">UI 实用程序 API</a>”：
 
            <br><br>
            <img src="../images/tutorials/google/60/add-module-dependency.png"
                alt="显示“UI 实用程序 API”的“添加模块依赖关系”对话框">                 
                
            <br><br>
            单击“确定”，然后再次单击“确定”退出“项目属性”对话框。</li>
        <li>在源代码编辑器中单击鼠标右键，然后选择“修复导入”(Alt+Shift+F)。将显示“修复所有导入”对话框，其中列出了针对无法识别的类的建议路径：
            
            <br><br>
            <img src="../images/tutorials/google/60/fix-all-imports.png"
                alt="“修复所有导入”对话框 -- 针对无法识别的类提供了建议的路径">                
            
            <br><br>
            单击“确定”。IDE 将为 <tt>GooglePanel.java</tt> 创建以下 import 语句：
            
            <pre>
import java.net.URL;
import <a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/HtmlBrowser.URLDisplayer.html">org.openide.awt.HtmlBrowser.URLDisplayer</a>;
            </pre>
            
            另请注意，源代码编辑器中的所有错误将会消失。</li>
    </ol>
        
    <h3 class="tutorial"><a name="overriding"></a>实现 Presenter.Toolbar</h3>
    
    <p>由于您刚创建的 JPanel 是将显示 Google 工具栏的实际组件，因此您需要实现 <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/actions/Presenter.Toolbar.html">Presenter.Toolbar</a></tt> 以使该组件显示在工具栏中。在 <tt>GoogleAction.java</tt> 中，执行以下操作：</p>
        
    <ol>
        
        
        <li>打开 <tt>GoogleAction.java</tt>，将会注意到它包含以下内容：
            
<pre class="examplecode">    
package org.myorg.googletoolbar;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public final class GoogleAction implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        // TODO implement action body
    }
    
}</pre>     

<li>更改签名，以便 <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/actions/Presenter.Toolbar.html">Presenter.Toolbar</a></tt> 也得以实现，因为您希望在工具栏中显示该操作。

<pre class="examplecode">
package org.myorg.googletoolbar;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public final class GoogleAction implements Presenter.Toolbar, ActionListener {

    Component comp  = new GooglePanel();

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO implement action body
    }

    @Override
    public Component getToolbarPresenter() {
        return comp;
    }

}</pre>

<li>打开 <tt>layer.xml</tt> 文件中，将会看到以下内容：

<pre class="examplecode">    
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE filesystem PUBLIC &quot;-//NetBeans//DTD Filesystem 1.2//EN&quot; &quot;https://netbeans.org/dtds/filesystem-1_2.dtd&quot;&gt;
&lt;filesystem&gt;
    &lt;folder name=&quot;Actions&quot;&gt;
        &lt;folder name=&quot;File&quot;&gt;
            &lt;file name=&quot;org-myorg-googletoolbar-GoogleAction.instance&quot;&gt;
                &lt;attr name=&quot;SystemFileSystem.localizingBundle&quot; stringvalue=&quot;org.myorg.googletoolbar.Bundle&quot;/&gt;
                &lt;attr name=&quot;delegate&quot; newvalue=&quot;org.myorg.googletoolbar.GoogleAction&quot;/&gt;
                &lt;attr name=&quot;displayName&quot; bundlevalue=&quot;org.myorg.googletoolbar.Bundle#CTL_GoogleAction&quot;/&gt;
                &lt;attr name=&quot;iconBase&quot; stringvalue=&quot;org/myorg/googletoolbar/icon.png&quot;/&gt;
                &lt;attr name=&quot;instanceCreate&quot; methodvalue=&quot;org.openide.awt.Actions.alwaysEnabled&quot;/&gt;
                &lt;attr name=&quot;noIconInMenu&quot; stringvalue=&quot;false&quot;/&gt;
            &lt;/file&gt;
        &lt;/folder&gt;
    &lt;/folder&gt;
    &lt;folder name=&quot;Toolbars&quot;&gt;
        &lt;folder name=&quot;File&quot;&gt;
            &lt;file name=&quot;org-myorg-googletoolbar-GoogleAction.shadow&quot;&gt;
                &lt;attr name=&quot;originalFile&quot; stringvalue=&quot;Actions/File/org-myorg-googletoolbar-GoogleAction.instance&quot;/&gt;
                &lt;attr name=&quot;position&quot; intvalue=&quot;0&quot;/&gt;
            &lt;/file&gt;
        &lt;/folder&gt;
    &lt;/folder&gt;
&lt;/filesystem&gt;</pre>

<p><li>上面显示的内容是由“新建操作”向导创建的。删除 &quot;instanceCreate&quot; 属性，因为在本例中，您不希望创建操作类的实例。毕竟，此时您希望 JPanel 显示在该位置。
            
    </ol>
    
    <p>在本节中，已创建了一个用于显示 JTextField 和 JLabel 的 JPanel。在 JTextField 中按 Enter 键时，其内容将发送到 Google 搜索。将打开 HTML 浏览器，并且会看到 Google 搜索结果。该操作类用于在 <tt>layer.xml</tt> 文件中注册的应用程序工具栏内集成 JPanel。
    
</div>

<!-- ======================================================================================= -->

<br>
<h2><a name="compiling"></a>编译、安装和使用模块</h2>

<p>NetBeans IDE 使用 Ant 生成脚本在 IDE 中编译和安装模块。当在上面的<a href="#creating-module-project">设置模块项目</a>一节中创建了模块项目之后，系统会自动为您创建生成脚本。现在，您可以对模块进行编译并将其添加到 IDE 中，利用 NetBeans IDE 的 Ant 支持可以执行此操作：</p>
    
<ol>
    <li>在“项目”窗口中，右键单击 &quot;<tt>GoogleToolbar</tt>&quot; 项目节点并选择“运行”。将生成模块并将其安装在 IDE 的新实例（即目标平台）中。缺省情况下，缺省目标平台是您当前所使用的 IDE 版本。此时将打开目标平台，您可以在其中试用新模块。</li>
    <li>成功安装模块后，它会在 IDE 的“编辑”工具栏中添加一个新按钮。 
    
    <p><p><b class="notes">注意：</b>此工具栏按钮不显示图标，而是显示您在上面的<a href="#creating-panel">创建 JPanel</a> 一节中创建的 JPanel：
        
        <br><br>
        <img src="../images/tutorials/google/60/googlebar.png" border="1"
            alt="在 IDE“编辑”工具栏中嵌入的 Google 工具栏"></li>

    <li>在文本字段中键入一个搜索字符串：
    
        <br><br>
        <img src="../images/tutorials/google/60/googlebar-2.png" border="1"
            alt="显示样例搜索字符串的 Google 工具栏"></li>
            
    <li>按 Enter 键。如果在“选项”窗口中设置了 IDE 缺省浏览器，则会启动该浏览器。Google URL 和搜索字符串将被发送至浏览器，并且系统会执行搜索。返回搜索结果后，可以在浏览器中查看结果。</li>
</ol>

<br>
<h2 class="tutorial"><a name="sharing-plugin"></a>共享模块</h2>

<p>既然您已经生成了一个可增强 IDE 功能的有效模块，为什么不与其他开发者一起共享呢？NetBeans IDE 提供了一种创建二进制 NetBeans 模块文件 (.nbm) 的简便方法，这是允许他人可以在自己的 IDE 版本中试用该模块文件的通用方法（实际上，这就是您在上面的<a href="#compiling">编译、安装和使用模块</a>中所执行的操作）。
    
    <p>要创建模块二进制文件，请执行以下操作：</p>
    
在“项目”窗口中，右键单击 &quot;GoogleToolbar&quot;<tt></tt> 项目节点，然后选择“创建 NBM”。将创建新的 NBM 文件，您可以在“文件”窗口 (Ctrl+2) 中查看它：
        
        <br><br>
        <img src="../images/tutorials/google/60/create-nbm.png" border="1" alt="在“文件”窗口中显示的新 NBM 文件">


<br>
<div class="feedback-box"><a name="feedback"></a> <a href="https://netbeans.org/about/contact_form.html?to=3&amp;subject=Feedback:%20Google%20Toolbar%20Module%20Tutorial">请将您的意见和建议发送给我们</a></div>
   <br style="clear:both;" />
    <!-- ======================================================================================== -->
    
    <h2><a name="nextsteps"></a>另请参见</h2>
    
    <p>“NetBeans 插件快速入门”教程到此结束。本文档介绍了如何创建用于在 IDE 中添加 Google 搜索工具栏的插件。有关创建和开发插件的详细信息，请参见以下资源： 
    <ul>
        <p><li><a href="https://netbeans.org/kb/trails/platform_zh_CN.html">NetBeans 平台学习资源</a></li>
        <p><li><a href="http://bits.netbeans.org/dev/javadoc/">NetBeans API Javadoc</a></li>
        <p><li>本教程中使用的 NetBeans API 类：
        <ul>
            <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/HtmlBrowser.URLDisplayer.html">HtmlBrowser.URLDisplayer</a></tt>
            <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/actions/Presenter.Toolbar.html">Presenter.Toolbar</a></tt>
        </ul>
        </li>
    </ul>
    
    <hr>
    <!-- ======================================================================================== -->
    
    
</body>
</html>
