<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>NetBeans 平台 6.8 快速入门教程</title>
    <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <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 name="description"
          content="A short guide to getting started with the NetBeans Platform.">
</head>
<body>

   <h1>NetBeans 平台快速入门</h1>

   <p>欢迎使用 <a href="https://platform.netbeans.org/"><b>NetBeans 平台</b></a>！

   <p>NetBeans 平台的主要优点是其模块化体系结构。其他优点还有 NetBeans 平台所依赖的 Swing UI 工具包（使用 Java 创建用户界面的正式工具包）以及 NetBeans IDE 屡获殊荣的 &quot;Matisse&quot; GUI 生成器。
   
   <p>在本快速入门教程中，我们将通过一个非常简单的示例向您介绍模块化的优点和使用情况，此示例由目前就读于奥地利林茨市 Johannes Kepler 大学的博士生 Thomas W&uuml;rthinger 提供。在了解本快速入门教程中所介绍的概念后，您便可以参阅 <a href="https://netbeans.org/kb/trails/platform_zh_CN.html">NetBeans 平台学习资源</a>，其中为许多与 NetBeans 平台相关的不同方案提供了各种非常丰富的教程。

<p class="tips"> 如果您不熟悉 NetBeans 平台，强烈建议您观看截屏视频系列 <a href="https://platform.netbeans.org/tutorials/nbm-10-top-apis.html">Top 10 NetBeans APIs</a>（最主要的 10 个 NetBeans API）。

   <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="#single">包含单个模块的 NetBeans 平台应用程序</a></li>
        <li><a href="#lookup">使用 Lookup 的模块化应用程序</a>
        <li><a href="#listener">LookupListener 和 InstanceContent</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><b class="notes">注意：</b>虽然 NetBeans 平台是一个独立的产品，但无需单独下载该平台。通常，您可以在 NetBeans IDE 中开发应用程序，然后排除特定于 IDE 但对应用程序来说是多余的模块。
    
    <!-- ===================================================================================== -->
 
    <h2 class="tutorial"><a name="single"></a>包含单个模块的 NetBeans 平台应用程序</h2>
    
    <p>首先，我们只是创建一个包含单个模块的新 NetBeans 平台应用程序。
                
    <ol>

         <p><li>选择“文件”|“新建项目”，然后选择“NetBeans 模块”。选择“NetBeans 平台应用程序”。您应看到如下所示的内容：</p>
         <p><p align="left"><img border="1" src="../images/tutorials/quickstart-platform/wordapp01.png" alt="图 1">
         <p>单击“下一步”。</p>
         
         <p><li>将新应用程序命名为 &quot;WordApp&quot;，并使其成为 IDE 的主项目：</p>
         <p><p align="left"><img border="1" src="../images/tutorials/quickstart-platform/wordapp02.png" alt="图 2">
         <p class="tips"> 当调用全局项目命令“运行项目”时，将启动 IDE 主项目。</p>
         <p>单击“完成”。</p>

         <p><li>在“项目”窗口中展开新应用程序，右键单击“模块”节点，然后选择“添加新模块”。将新模块命名为 &quot;WordEngine&quot;：</p>
          <p><p align="left"><img border="1" src="../images/tutorials/quickstart-platform/wordapp03.png"/>
         <p>单击“下一步”。</p>

         <p><li>为模块指定一个唯一的名称（即其代码名称基）以及将显示在“项目”窗口中的名称。</p>
          <p><p align="left"><img border="1" src="../images/tutorials/quickstart-platform/wordapp04.png"/>
          <p>单击“完成”。将创建新模块，并在“项目”窗口中显示其结构。

         <p><li>右键单击 &quot;WordEngine&quot; 模块，然后选择“新建”|“其他”。在“模块开发”类别中，选择“窗口组件”：
         <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp05.png"/>

         <p><p>单击“下一步”。现在，您应看到如下所示的内容：</p>
         <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp06.png"/>
         <p>单击“下一步”。</p>

         <p><li>将“类名前缀”设置为 &quot;Text&quot;，并将“包”设置为 &quot;org.demo.wordengine&quot;。</p>
         <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp07.png"/>
         <p>单击“完成”。将在模块的源结构中添加新窗口以及一些附属 XML 文件。</p>

         <p><li>现在，双击 &quot;TextTopComponent.java&quot; 文件，以在 &quot;Matisse&quot; GUI 生成器的“设计”视图中将其打开。使用“组件面板”(Ctrl-Shift-8) 将一个按钮和一个文本区域拖放到窗口中：</p>

         <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp15.png"/>

         <p>右键单击文本区域，选择“更改变量名称”，然后将其命名为 &quot;text&quot;。这是您从代码中访问该组件时所用的名称。将按钮文本设置为 &quot;Filter!&quot;。
          
         <p><li>双击该按钮，将在源代码编辑器中自动创建一个事件处理方法。在单击按钮时，将会调用此方法。将此方法的主体更改为以下代码。</p>
<p><pre class="examplecode">private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
   String s = text.getText();
   s = s.toUpperCase();
   text.setText(s);
}</pre>

         <p><li>右键单击该应用程序，然后选择“运行”。此操作将启动新的 NetBeans 平台应用程序并安装模块。新应用程序应如下所示：</p>
         <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp08.png"/>

         <p><li>选择“窗口”| &quot;Text&quot;（文本），在文本区域中输入一些文本，然后单击 &quot;Filter!&quot;。此时，您应看到文本将以大写字母显示：</p>
         <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp09.png"/>

    </ol>

<p>您已经学习了如何创建新的 NetBeans 平台应用程序以及如何向其中添加新模块。

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

    <h2 class="tutorial"><a name="lookup"></a>使用 Lookup 的模块化应用程序</h2>

    <p>我们将另外创建两个模块。第一个新模块会定义一个服务，第二个模块会把该服务提供给前一部分所定义的模块。

    <ol>
         <p><li>在“项目”窗口中展开新应用程序，右键单击“模块”节点，然后选择“添加新模块”。将新模块命名为 &quot;TextFilter&quot;，并指定 &quot;org.demo.textfilter&quot; 作为其代码名称基，然后按照前一部分中的操作完成向导步骤，该向导会将模块添加到先前创建的应用程序中。</p>

         <p><li>右键单击 &quot;TextFilter&quot; 模块，然后选择“新建”|“Java 接口”。将该 Java 接口命名为 &quot;TextFilter&quot;，在“包”中选择 &quot;org.demo.textfilter&quot;，然后使用编辑器对其进行如下定义：

<p><pre class="examplecode">package org.demo.textfilter;

public interface TextFilter {

    String process(String s);

}
</pre>

         <p><li>右键单击 &quot;TextFilter&quot; 模块，选择“属性”，然后使用“API 版本控制”标签指定包含接口的包应当可以在整个应用程序中使用。</p>

         <p><img border="1" src="../images/tutorials/quickstart-platform/fig-10.png"/>

         <p><li>创建应用程序的第三个模块，将其命名为 &quot;MyFilter&quot;，并指定 &quot;org.demo.myfilter&quot; 作为其代码名称基。</p>

         <p><li>在新创建的 &quot;MyFilter&quot; 模块的“项目属性”对话框中，添加对 &quot;TextFilter&quot; 模块的依赖关系：</p>

         <p><img border="1" src="../images/tutorials/quickstart-platform/fig-11.png"/>
         
         <p><li>由于上面定义的依赖关系，您现在可以实现在第二个模块中定义的接口：

<p><pre class="examplecode">package org.demo.myfilter;

import org.demo.textfilter.TextFilter;

@ServiceProvider(service=TextFilter.class)
public class UpperCaseFilter implements TextFilter {

    public String process(String s) {
        return s.toUpperCase();
    }

}</pre>
    <p>在编译时，@ServiceProvider 标注将创建 META-INF/services 文件夹并包含一个文件，该文件按照 JDK 6 ServiceLoader 机制注册 TextFilter 接口实现。您需要设置对实用程序 API 模块的依赖关系，该模块提供 ServiceProvider 标注。
         
         <p><li>现在需要更改处理过滤按钮单击操作的代码，以便查找并装入接口 &quot;TextFilter&quot; 的实现程序。在找到此实现程序后，将对其调用以过滤文本。</p>
        <p>我们需要先在 &quot;WordEngine&quot; 模块的“项目属性”对话框中添加对 &quot;TextFilter&quot; 模块的依赖关系，然后才能执行此操作。</p>

        <p><img src="../images/tutorials/quickstart-platform/wordapp12.png"/>

<p>现在，您可以装入 &quot;TextFilter&quot; 类的实现，如下所示：</p>

<p><pre class="examplecode">private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    String s = text.getText();
    <b>TextFilter filter = Lookup.getDefault().lookup(TextFilter.class)</b>;
    if (filter != null) {
	 s = filter.process(s);
    }
    text.setText(s);
}</pre>

         <p class="tips"> 以上代码操作可通过 JDK 6 &quot;ServiceLoader&quot; 类完成，只是 &quot;Lookup&quot; 类可以用在 JDK 6 以前的 JDK 中。此外，&quot;Lookup&quot; 类还有许多附加功能，我们将在下一部分进行说明。</p>

    </ol>

     <p>现在，您可以运行代码，并检查是否和以前一样可以正常运行。虽然功能相同，但新的模块化设计将图形用户界面和过滤器实现进行了更明确的划分。新应用程序还可以非常轻松地实现扩展，只需向应用程序的类路径中添加新服务提供程序即可。</p>

<p>作为练习，您可以更改代码，以便对文本连续应用找到的所有文本过滤器（使用方法 &quot;lookupAll&quot;）。例如，添加一个删除所有空格的文本过滤器实现，然后测试最终的应用程序。</p>
    
    <!-- ===================================================================================== -->

    <h2 class="tutorial"><a name="listener"></a>LookupListener 和 InstanceContent</h2>

    <p>我们将创建第四个模块，该模块在我们单击第一个模块中的 &quot;Filter!&quot; 按钮时会动态接收文本。

    <ol>
         <p><li>在第一个模块中，更改 &quot;TextTopComponent&quot; 的构造函数，如下所示：</p>

<p><pre class="examplecode"><b>private InstanceContent content;</b>

private TextTopComponent() {
    initComponents();
    setName(NbBundle.getMessage(TextTopComponent.class, &quot;CTL_TextTopComponent&quot;));
    setToolTipText(NbBundle.getMessage(TextTopComponent.class, &quot;HINT_TextTopComponent&quot;));
//        setIcon(Utilities.loadImage(ICON_PATH, true));

    <b>content = new InstanceContent();
    associateLookup(new AbstractLookup(content));</b>

}</pre>

         <p><li>更改过滤按钮的代码，以便在单击该按钮时，旧值将被添加到 <tt>InstanceContent</tt> 对象中。</p>

<p><pre class="examplecode">private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    String s = text.getText();
    TextFilter filter = Lookup.getDefault().lookup(TextFilter.class);
    if (filter != null) {
        <b>content.add(s);</b>
        s = filter.process(s);
    }
    text.setText(s);
}</pre>

         <p><li>创建一个名为 &quot;History&quot; 的新模块，并指定 &quot;com.demo.history&quot; 作为其代码名称基。
         <p><li>在 &quot;History&quot; 模块的 &quot;com.demo.history&quot; 包中，创建一个前缀为 &quot;History&quot; 的新窗口组件。指定此组件应该显示在 &quot;editor&quot; 位置。在创建该窗口后，向其中添加一个文本区域。将该文本区域的变量名称更改为 &quot;historyText&quot;。</p>
         
         <p><li>向 HistoryTopComponent 类的构造函数中添加一些代码，使其侦听当前活动窗口 <tt>String</tt> 类的 lookup 事件。该代码会在文本区域中显示检索到的所有 <tt>String</tt> 对象：</p>

<p><pre class="examplecode"><b>private Lookup.Result result;</b>

private HistoryTopComponent() {

    ...

    <b>result = org.openide.util.Utilities.actionsGlobalContext().lookupResult(String.class);
    result.addLookupListener(new LookupListener() {
        public void resultChanged(LookupEvent e) {
            historyText.setText(result.allInstances().toString());
        }
    });</b>
}</pre>

     <p><li>然后，您可以启动应用程序并进行试用。结果应与以下屏幕快照中的所示类似：</p>

<p><img border="1" src="../images/tutorials/quickstart-platform/wordapp13.png"/>

<p>作为练习，您可以将查找结果的类型由 <tt>String</tt> 更改为 <tt>Object</tt>，然后查看当选择不同的窗口时会发生什么情况。</p>

 </ol>

<p>恭喜！至此，您已经使用非常少的编码工作创建了一个模块化应用程序的小示例：

 <p><img border="1" src="../images/tutorials/quickstart-platform/wordapp14.png"/>

<p>此应用程序包含 4 个模块。当满足下列条件时，一个模块中的代码才能被另一个模块使用：(1) 第一个模块明确公开了包，并且 (2) 第二个模块设置了对第一个模块的依赖关系。这样，NetBeans 平台就可以帮助您以严格的模块化体系结构组织代码，从而确保仅在提供代码的模块之间设置了约定时才可重用代码，否则不能随意重用。</p><p>此外，还引入了 <tt>Lookup</tt> 类作为模块间通信的一种机制，该类是 JDK 6 ServiceLoader 方法的扩展。实现是通过其接口装入的。无需使用实现的任何代码，&quot;WordEngine&quot; 模块便能显示实现程序所提供的服务。NetBeans 平台应用程序就是以此方式提供松散耦合的。</p>

<p class="tips"> 要继续学习模块化和 NetBeans 平台相关知识，请参见包含 4 个部分的“NetBeans 平台选择管理”系列（<a href="https://platform.netbeans.org/tutorials/nbm-selection-1.html">从此处开始</a>）。之后，可参阅 <a href="https://netbeans.org/kb/trails/platform_zh_CN.html">NetBeans 平台学习资源</a>，您可以在其中选择与您的特定业务方案最相关的教程。此外，如果存在与 NetBeans 平台相关的任何类型的问题，可随时将其写入邮件列表 dev@openide.netbeans.org，其相关归档位于<a href="https://netbeans.org/projects/openide/lists/dev/archive">此处</a>。</p>

 <p>祝您使用 NetBeans 平台愉快，并期待着您的来信！</p>

 

</body>

</html>
