blob: cd275bf07a5459db15cbd8a50ba720236659a48c [file] [log] [blame]
<!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>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- -*- xhtml -*- -->
<title>NetBeans 平台 6.5 快速入门教程</title>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
<meta name="AUDIENCE" content="NBUSER">
<meta name="TYPE" content="ARTICLE">
<meta name="EXPIRES" content="N">
<meta name="developer" content="jtulach@netbeans.org">
<meta name="indexed" content="y">
<meta name="description"
content="A short guide to using the Nodes API.">
<!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!-- Use is subject to license terms.-->
</head>
<body>
<h1>NetBeans 平台快速入门</h1>
<p>欢迎使用 NetBeans 平台!
</p><p>本教程简要地向您介绍 NetBeans 平台工作流,演示了创建一个简单 HTML 编辑器的过程。创建的 HTML 编辑器尽管简单,但是功能非常成熟,因为它将重用 NetBeans 平台提供的基础结构。例如,无需任何编码,您的 HTML 编辑器即可拥有一个成熟的窗口系统。完成本教程后,您将基本掌握如何在 NetBeans 平台创建、构建和运行应用程序。
</p><p>完成本教程后,您可以继续参阅 <a href="https://platform.netbeans.org/tutorials">NetBeans Platform learning trail</a>(NetBeans 平台学习资源)。该学习资源提供了综合性教程,这些教程重点介绍适用于各种应用程序类型的一系列 NetBeans API。如果您不希望创建 &quot;Hello World&quot; 应用程序,则可以跳过本教程,而直接阅读学习资源。
</p><p><b class="notes">注意:</b>本文档针对的是 NetBeans IDE 6.5 发行版。如果使用的是早期版本,请参见<a href="61/nbm-htmleditor.html">本文档的 6.1 版</a>。如果要了解如何创建 NetBeans 插件而不是 NetBeans 平台应用程序,请参见 <a href="../60/nbm-google.html">NetBeans 插件快速入门</a>
</p><p><b>目录</b></p>
<img src="../images/articles/65/netbeans-stamp65.gif" class="stamp" width="114" height="114" alt="本页上的内容适用 NetBeans IDE 6.5" title="本页上的内容适用 NetBeans IDE 6.5"> </p>
<ul class="toc">
<li><a href="#generating">生成主干应用程序</a></li>
<li><a href="#tweakingthemenuitems">调整用户界面</a>
</li><li><a href="#tweakingthewindowlayout">调整窗口布局</a></li>
<li><a href="#tweakingthefavorites">调整“收藏夹”窗口</a></li>
<li><a href="#runningtheapplication">运行应用程序</a></li>
<li><a href="#distributingtheapplication">分发应用程序</a>
<ul>
<li><a href="#zip">通过 ZIP 文件分发 HTML 编辑器</a></li>
<li><a href="#webstart">通过共享 NetBeans Web Start 资源库分发 HTML 编辑器</a></li>
</ul>
</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=6635">下载完整的样例</a>并查看其源代码。
</p><p>在本教程结束时,您的 HTML 编辑器将如下图所示:</p>
<img src="../images/tutorials/htmleditor/html-editor-65.png" alt="完成的 HTML 编辑器">
<p></p><p><b class="notes">注意:</b>尽管这是一个非常简单的演示程序,但请您认真对待。这是一个真正的<i></i>程序,通过该程序可轻松编辑 HTML 页,并且它还具有代码完成、验证和预定义 HTML 片断的功能。
</p><p>本教程所创建的 HTML 编辑器是一个“在 NetBeans 平台上”构建的富客户端应用程序。这意味着 IDE 的核心,也<u>就是</u><i></i> NetBeans 平台,将是您应用程序的基础。在 NetBeans 平台上,添加所需的模块,并且排除 IDE 需要但应用程序不需要的模块。 下面您将看到 NetBeans 平台(应用程序的基础)中添加的一些 IDE 模块:</p>
<img src="../images/tutorials/htmleditor/diagram.png" alt="NetBeans 平台应用程序的结构">
<p>创建该 HTML 编辑器需要生成应用程序框架,排除您不需要的模块和用户界面项,然后将 Favorites 窗口设置为 IDE 启动时缺省打开的窗口。IDE 用户界面元素支持所有这些活动。 </p>
<p>您将看到构建过程多么简单、多么容易,更确切地说是在 NetBeans 平台上组装<em></em>一个功能全面的应用程序。最后,我们将向您介绍如何使最终产品可以方便地通过 WebStart 下载和启动。
</p>
<p><b class="notes">注意:</b>虽然 NetBeans 平台是一个独立的产品,但不必为了学习本教程而单独下载它。我们将在 IDE 中开发富客户端应用程序,然后排除与 IDE 相关但对于您的应用程序来说是多余的模块。
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="generating"></a>生成主干应用程序</h2>
<p>在 NetBeans 平台上创建应用程序时,首先需要创建 NetBeans 平台Application 项目。缺省的模块 NetBeans 平台Application 项目包括 NetBeans 平台中的所有<i></i>模块和 NetBeans IDE 中的所有<i></i>模块。由于我们并不需要所有模块,因此我们将排除不需要的模块。
</p><ol><li>使用 New Project (Ctrl-Shift-N) 向导,从 NetBeans 模块类别中的模板创建 NetBeans 平台Application Project,如下所示。</p>
<p><img src="../images/tutorials/htmleditor/new-nb-app-wiz-65.png" alt="新建项目向导">
</p><p>单击“下一步”并将 NetBeans 平台Application 项目命名为 &quot;NetBeansHTMLEditor&quot;。单击“完成”。</p>
</li><li>右键单击项目节点,选择“属性”选项,然后在 NetBeans 平台 Application 的“项目属性”对话框中做少量更改:
<ul><p></p><li>在“构建”面板中,单击“创建独立应用程序”,指定在 NetBeans 平台上生成富客端户应用程序。 </p>
<p>确保为可执行文件添加了标记名称,为标题栏调整了应用程序标题,如下所示:</p>
<p><img src="../images/tutorials/htmleditor/html-editor-prop-1-65.png" alt="应用程序面板">
</p></li><li>在“启动画面”面板中,注意可以为应用程序提供程序启动画面和进度提示条,如下所示:
</p>
<p><img src="../images/tutorials/htmleditor/html-editor-prop-2-65.png" alt="启动画面面板">
</p><p><b class="notes">注意:</b>如果您还没有程序启动画面,请使用:<a href="../images/tutorials/htmleditor/splash.gif">这个</a>
</p></li>
<li><p>在“项目属性”对话框的“库”面板,您会看到一组“集群”列表。集群是相关模块的集合。需要选择的集群只有 <tt>gsf1</tt><tt>ide10</tt><tt>platform9</tt>。取消选中所有其他集群。现在需要启用和禁用许多模块,因为只需要选择与我们的 HTML 编辑器相关的那些模块。在“库”面板中选中或取消选中一个模块时,都将在应用程序的 NetBeans 平台配置文件中添加一个条目。为了加快该过程,我们将这些条目粘贴到该文件。关闭“项目属性”对话框。</p>
<p></p><p>展开 Important Files 节点,然后打开“NetBeans 平台配置”文件。粘贴以下条目:
</p><p></p><pre>disabled.clusters=\
apisupport1,\
harness,\
java2,\
nb6.1,\
profiler3
disabled.modules=\
org.mozilla.rhino.patched,\
org.netbeans.api.debugger,\
org.netbeans.api.visual,\
org.netbeans.core.ide,\
org.netbeans.core.multiview,\
org.netbeans.core.nativeaccess,\
org.netbeans.lib.cvsclient,\
org.netbeans.libs.commons_logging,\
org.netbeans.libs.ini4j,\
org.netbeans.libs.jna,\
org.netbeans.libs.svnClientAdapter,\
org.netbeans.libs.xerces,\
org.netbeans.modules.autoupdate.services,\
org.netbeans.modules.autoupdate.ui,\
org.netbeans.modules.classfile,\
org.netbeans.modules.core.kit,\
org.netbeans.modules.css.visual,\
org.netbeans.modules.db,\
org.netbeans.modules.db.core,\
org.netbeans.modules.db.dataview,\
org.netbeans.modules.db.drivers,\
org.netbeans.modules.db.kit,\
org.netbeans.modules.db.metadata.model,\
org.netbeans.modules.db.mysql,\
org.netbeans.modules.db.sql.editor,\
org.netbeans.modules.db.sql.visualeditor,\
org.netbeans.modules.dbapi,\
org.netbeans.modules.editor.bookmarks,\
org.netbeans.modules.editor.kit,\
org.netbeans.modules.extbrowser,\
org.netbeans.modules.glassfish.common,\
org.netbeans.modules.gototest,\
org.netbeans.modules.httpserver,\
org.netbeans.modules.ide.kit,\
org.netbeans.modules.javascript.editing,\
org.netbeans.modules.javascript.hints,\
org.netbeans.modules.javascript.kit,\
org.netbeans.modules.javascript.refactoring,\
org.netbeans.modules.languages,\
org.netbeans.modules.languages.bat,\
org.netbeans.modules.languages.diff,\
org.netbeans.modules.languages.manifest,\
org.netbeans.modules.languages.refactoring,\
org.netbeans.modules.languages.sh,\
org.netbeans.modules.localhistory,\
org.netbeans.modules.mercurial,\
org.netbeans.modules.project.ant,\
org.netbeans.modules.project.libraries,\
org.netbeans.modules.properties,\
org.netbeans.modules.properties.syntax,\
org.netbeans.modules.schema2beans,\
org.netbeans.modules.sendopts,\
org.netbeans.modules.server,\
org.netbeans.modules.servletapi,\
org.netbeans.modules.subversion,\
org.netbeans.modules.tasklist.kit,\
org.netbeans.modules.tasklist.projectint,\
org.netbeans.modules.tasklist.todo,\
org.netbeans.modules.tasklist.ui,\
org.netbeans.modules.usersguide,\
org.netbeans.modules.utilities,\
org.netbeans.modules.utilities.project,\
org.netbeans.modules.versioning,\
org.netbeans.modules.versioning.system.cvss,\
org.netbeans.modules.versioning.util,\
org.netbeans.modules.web.flyingsaucer,\
org.netbeans.modules.xml,\
org.netbeans.modules.xml.axi,\
org.netbeans.modules.xml.core,\
org.netbeans.modules.xml.lexer,\
org.netbeans.modules.xml.multiview,\
org.netbeans.modules.xml.retriever,\
org.netbeans.modules.xml.schema.completion,\
org.netbeans.modules.xml.schema.model,\
org.netbeans.modules.xml.tax,\
org.netbeans.modules.xml.text,\
org.netbeans.modules.xml.tools,\
org.netbeans.modules.xml.wsdl.model,\
org.netbeans.modules.xml.xam,\
org.netbeans.modules.xml.xdm,\
org.netbeans.modules.xsl,\
org.netbeans.spi.debugger.ui,\
org.netbeans.spi.viewmodel,\
org.netbeans.swing.dirchooser,\
org.openide.compat,\
org.openide.util.enumerations
enabled.clusters=\
gsf,\
ide,\
platform
nbplatform.active=default</pre>
</li></ul></li>
</ol>
<p>现在拥有了一个与 HTML 编辑器相关的 NetBeans 模块的子集。但是,尽管您需要现在拥的这些模块,但可能不需要这些模块提供的所有用户界面元素。在下一节中,您调整用户界面并定制特定于将创建的 HTML 编辑器的窗口布局。
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="tweakingthemenuitems"></a>调整用户界面</h2>
<p>可以根据需要保留或删除所选模块提供的用户界面。例如,您的 HTML 编辑器可能并不需要“工具”菜单下的一些项目或所有项目。同样,您也可能不需要一些工具栏或工具栏按钮。在本部分中,我们将修改 IDE 的用户界面,只留下对您的富客户端应用程序有用的子集。
</p><ol><li>展开 NetBeans 平台Application 项目,右键单击 Modules 节点,然后选择“添加”选项,如下所示:</p>
<p><img border="1" src="../images/tutorials/htmleditor/add-module-61.png" alt="上下文中的此层">
</p><p>此时将现“新建项目”向导 (Ctrl-Shift-N)。将项目命名为 <tt>BrandingModule</tt>,单击“下一步”。
</p></li><li>在“代码名称基”字段中,输入 <tt>org.netbeans.brandingmodule</tt>
</li><li>单击“生成 XML 层”,然后单击“完成”。
</li><li>在标记模块中,展开 <tt>layer.xml</tt> 节点。此时将出现两个子节点:</p>
<p><img border="1" src="../images/tutorials/htmleditor/expanded-xml-layer-61.png" alt="展开 XML 层文件">
</p></li><li><tt>&lt;上下文中的此层&gt;</tt> 节点中,IDE 将显示所有文件夹和文件的合并视图,所有模块在其层中注册。要排除一些项,请右键单击这些项,然后选择“删除”选项,如下所示:</p>
<p><img border="1" src="../images/tutorials/htmleditor/this-layer-in-context-61.png" alt="上下文中的此层">
</p><p>然后,IDE 向模块的 <tt>layer.xml</tt> 文件中添加标记,当安装模块时将隐藏您已删除的那些项。例如,通过右键单击 <tt>Menu Bar/Edit</tt>,我们可以移除 HTML 编辑器不需要的菜单项。此操作将生成一些代码片段,如 <tt>layer.xml</tt> 文件中的以下片段:
</p><pre class="examplecode">&lt;folder name=&quot;Menu&quot;&gt;
&lt;folder name=&quot;Edit&quot;&gt;
&lt;file name=&quot;org-netbeans-modules-editor-MainMenuAction$StartMacroRecordingAction.instance_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-editor-MainMenuAction$StopMacroRecordingAction.instance_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;</pre>
<p>
上面代码片段的结果是,另一个模块提供的<tt>“启动宏记录”</tt><tt>“停止宏记录”</tt>操作从菜单中被您标记模块移除。要再次显示它们,只需从 <tt>layer.xml</tt> 文件中删除上述标记。
</p></li><li><p>使用上一步中介绍的方法,根据需要隐藏工具栏、工具栏按钮、菜单和菜单项。</p>
<p>完成此步骤后,查看 <tt>layer.xml</tt> 文件。这样做时,您应该看到类似下文的内容,具体取决于您所删除的条目:</p>
<p></p><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE filesystem PUBLIC &quot;-//NetBeans//DTD Filesystem 1.1//EN&quot; &quot;https://netbeans.org/dtds/filesystem-1_1.dtd&quot;&gt;
&lt;filesystem&gt;
&lt;folder name=&quot;Menu&quot;&gt;
&lt;file name=&quot;BuildProject_hidden&quot;/&gt;
&lt;folder name=&quot;File&quot;&gt;
&lt;file name=&quot;Separator2.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorNew.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorOpen.instance_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CloseProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CustomizeProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewFile.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-OpenProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-RecentProjects.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-SetMainProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-groups-GroupsMenu.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;file name=&quot;Refactoring_hidden&quot;/&gt;
&lt;file name=&quot;RunProject_hidden&quot;/&gt;
&lt;folder name=&quot;Window&quot;&gt;
&lt;file name=&quot;ViewRuntimeTabAction.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-logical-tab-action.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-physical-tab-action.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;/filesystem&gt;</pre>
</li></ol>
<!-- ===================================================================================== -->
<h2 class="tutorial"><a name="tweakingthewindowlayout"></a>调整窗口布局</h2>
<p>
使用 <tt>&lt;上下文中的此层&gt;</tt> 节点,我们不仅可以删除现有项目,而且还可以更改其内容。例如,HTML 编辑器需要操作 HTML 文件。 因此,同 Java 源文件和项目合作良好的常规 IDE 相比,在初始局中显示 <tt>Favorites</tt> 窗口很重要。
</p>
<p>
窗口布局的定义也作为层中的文件介绍,所有这些文件都存储在 <tt>Windows2</tt> 文件夹下。<tt>Windows2</tt> 文件夹中的文件是 <a href="http://bits.netbeans.org/dev/javadoc/org-openide-windows/org/openide/windows/doc-files/api.html">Window 系统 API</a> 定义的伪可读 XML 文件。它们非常复杂,但好在 HTML 编辑器没有必要全部理解它们,如下所示:
</p>
<ol><li>在标记模块的 <tt>&lt;上下文中的此层&gt;</tt> 节点处,右键单击 <tt>Windows2</tt> 节点,然后选择“查找”,如下所示:</p>
<p><img border="1" src="../images/tutorials/htmleditor/find-favorites-61.png" alt="调用“查找”菜单">
</p></li><li>搜索名称为 <tt>Favorites</tt> 的对象,忽略大小写。我们将找到两个文件:
</p>
<p><img border="1" src="../images/tutorials/htmleditor/find-favorites2-61.png" alt="查找“收藏夹”窗口">
</p><p>
第一个文定义组件的外观和创建方式。由于不需要更改外观以及创建方式,因此也不需要修改该文件。第二个文件对您的意义较大,它包含以下内容:
</p>
<pre class="examplecode">
&lt;tc-ref version=&quot;2.0&quot;&gt;
&lt;module name=&quot;org.netbeans.modules.favorites/1&quot; spec=&quot;1.1&quot; /&gt;
&lt;tc-id id=&quot;favorites&quot; /&gt;
&lt;state opened=&quot;false&quot; /&gt;
&lt;/tc-ref&gt;</pre>
<p>
</p></li><li>尽管大多数 XML 的含义都很模糊,但是不需要读取任何文档也能看懂其中的一行,将 <tt>false</tt> 更改为 <tt>true</tt> 似乎可以在缺省情况下打开该组件。请照此方法操作。
</li><li>
使用类似的方法,您还可以将以下窗口从缺省开启状态更改为您希望它们在 HTML 编辑器中所表现的状态。
<ul>
<li><tt>CommonPalette.wstcref</tt>。Component Palete 的开启状态为 <tt>false</tt>。将它更改为 <tt>true</tt>
</li><li><tt>projectTabLogical_tc.wstcref</tt>。项目窗口的开启状态为 <tt>true</tt>。将它更改为 <tt>false</tt>
</li><li><tt>projectTab_tc.wstcref</tt>。文件窗口的开启状态为 <tt>true</tt>。将它更改为 <tt>false</tt>
</li><li><tt>runtime.wstcref</tt>。服务窗口的开启状态为 <tt>true</tt>。将它更改为 <tt>false</tt>
</li></ul>
</li></ol>
<p>您将看到标记模块包含几个新文件,每一个对应一个您更改的文件。实际上,这些文件覆盖了前几步中已经找到的文件,因此已经提供了覆盖窗口布局所需的信息。</p>
<p><img src="../images/tutorials/htmleditor/modified-wstcrefs-65.png" alt="覆盖“收藏夹”布局">
</p><p>查看 <tt>layer.xml</tt> 文件,现在它应该包含以下内容。如果没有,则将以下内容复制并粘贴到 <tt>layer.xml</tt> 文件。
</p><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE filesystem PUBLIC &quot;-//NetBeans//DTD Filesystem 1.1//EN&quot; &quot;https://netbeans.org/dtds/filesystem-1_1.dtd&quot;&gt;
&lt;filesystem&gt;
&lt;folder name=&quot;Menu&quot;&gt;
&lt;file name=&quot;BuildProject_hidden&quot;/&gt;
&lt;folder name=&quot;File&quot;&gt;
&lt;file name=&quot;Separator2.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorNew.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorOpen.instance_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CloseProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CustomizeProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewFile.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-OpenProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-RecentProjects.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-SetMainProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-groups-GroupsMenu.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;file name=&quot;Refactoring_hidden&quot;/&gt;
&lt;file name=&quot;RunProject_hidden&quot;/&gt;
&lt;folder name=&quot;Window&quot;&gt;
&lt;file name=&quot;ViewRuntimeTabAction.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-logical-tab-action.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-physical-tab-action.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;folder name=&quot;Windows2&quot;&gt;
&lt;folder name=&quot;Modes&quot;&gt;
&lt;folder name=&quot;commonpalette&quot;&gt;
&lt;file name=&quot;CommonPalette.wstcref&quot; url=&quot;CommonPaletteWstcref.xml&quot;/&gt;
&lt;/folder&gt;
&lt;folder name=&quot;explorer&quot;&gt;
&lt;file name=&quot;favorites.wstcref&quot; url=&quot;favoritesWstcref.xml&quot;/&gt;
&lt;file name=&quot;projectTabLogical_tc.wstcref&quot; url=&quot;projectTabLogical_tcWstcref.xml&quot;/&gt;
&lt;file name=&quot;projectTab_tc.wstcref&quot; url=&quot;projectTab_tcWstcref.xml&quot;/&gt;
&lt;file name=&quot;runtime.wstcref&quot; url=&quot;runtimeWstcref.xml&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;/filesystem&gt;</pre>
<!-- ===================================================================================== -->
<h2 class="tutorial"><a name="tweakingthefavorites"></a>调整 Favorites 窗口</h2>
<p>
在文件窗口显示的 NetBeans 平台Application 项目的 <tt>branding</tt> 文件夹的子文件夹中,我们可以覆盖在 NetBeans 资源中定义的字符串。在本部分中,我们将覆盖在 Favorites 窗口用于定义标签的字符串。例如,我们将 Favorites 标签值修改为 HTML Files,因为该窗口将专门用于 HTML 文件。
</p>
<ol><li>打开文件窗口并展开 NetBeans 平台Application 项目的 <tt>branding</tt> 文件夹。
</li><li><tt>branding/modules</tt> 内创建一个新文件夹结构。(在 IDE 中,可通过以下方法创建文件夹:右键单击某个文件夹,选择“新建”|“其他”,然后从“其他”类别中选择“文件夹”。)新的文件夹应该命名为 <tt>org-netbeans-modules-favorites.jar</tt>。在文件夹内,创建文件夹结构:<tt>org/netbeans/modules/favorites</tt>。在最后一个文件夹内,也就是在 <tt>favorites</tt> 文件夹内,创建一个新的 <tt>Bundle.properties</tt> 文件:
<p><img border="1" src="../images/tutorials/htmleditor/favorites-branding-61a.png" alt="标记“收藏夹”窗口">
</p><p>这个文件夹结构和资源文件与 Favorites 窗口相关的 NetBeans 资源中的文件夹结构相匹配。
</p></li><li>添加在下面屏幕快照中显示的字符串,来覆盖 Favorites 窗口资源中匹配的资源文件所定义的相同字符串。</p>
<p><img border="1" src="../images/tutorials/htmleditor/favorites-branding-61b.png" alt="标记“收藏夹”窗口">
</p><p>为了简化此步骤,复制并粘贴上文定义的字符串:
</p><pre>Favorites=HTML Files
ACT_AddOnFavoritesNode=&amp;Find HTML Files...
ACT_Remove=&amp;Remove from HTML Files List
ACT_View=HTML Files
ACT_Select=HTML Files
ACT_Select_Main_Menu=Select in HTML Files List
# JFileChooser
CTL_DialogTitle=Add to HTML Files List
CTL_ApproveButtonText=Add
ERR_FileDoesNotExist={0} does not exist.
ERR_FileDoesNotExistDlgTitle=Add to HTML Files List
MSG_NodeNotFound=The document node could not be found in the HTML Files List.</pre>
</li></ol>
<p>稍后,在启动应用程序时,将会看到“收藏夹”窗口中的文本和标签已更改为上面列出的内容。这说明可以从 NetBeans 平台中提取组件,并根据需要标记该组件。
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="runningtheapplication"></a>运行应用程序</h2>
<p>
运行应用程序很简单,只需右键单击项目节点,然后选择菜单项。
</p>
<ol>
<li>右键单击应用程序的项目节点,然后选择“清楚并构建全部”选项。
</li><li>右键单击应用程序的项目节点,然后选择“运行”选项:
</li><li>在应用程序部署完成后,在 Favorites 窗口内右键单击并选择包含 HTML 文件的文件夹,然后打开 HTML 文件,如下所示:</p>
<img src="../images/tutorials/htmleditor/html-editor-65.png" alt="打开 HTML 文件">
</li></ol>
<p>现在,就已创建好了一个功能完善的 HTML 编辑器,而无需键入一行 Java 代码。
<!-- ===================================================================================== -->
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="distributingtheapplication"></a>分发应用程序</h2>
<p>
从两种方法中选择一种分发您的应用程序。如果需要尽可能控制您的应用程序,则应该使用 Web start 在 Web 上分发应用程序。在这种情况下,希望更新应用程序时,您应该本地进行并通知最终户进行了更新,他们在下一次联机启动应用程序时将自动获取更新。此外,还可以选择使用包含应用程序的 ZIP 文件进行分发。使用这种方式,最终用户将在本地拥有完整的应用程序。您可以通过下文描述的更新机制分发更新和新特性。
</p><h3 class="tutorial"><a name="zip"></a>通过 ZIP 文件分发应用程序</h3>
<p> 为了使应用程序具有可扩展性,我们需要用户安装模块来增强应用程序功能。为此,仅需要启用少量额外模块,该模块可以将 Plugin Manager 和 HTML 编辑器捆绑使用。
</p>
<ol><li>右键单击 NetBeans 平台Application 项目,然后选择“属性”选项。在“项目属性”对话框中,使用“库”面板并选中<tt>“更新中心”</tt>复选框以及下面突出显示的<tt>“自动更新服务”</tt>复选框以及<tt>“自动更新 UI”</tt>复选框:</p>
<p><img src="../images/tutorials/htmleditor/update-center-65.png" alt="自动更新模块">
</p></li><li>右键单击应用程序的项目节点,然后选择“清楚并构建全部”选项。
</li><li>再次运行应用程序。 请注意,在“工具”菜单下已经有了一个名为“插件”的新菜单项。</p>
<img src="../images/tutorials/htmleditor/auto-update2-61.png" border="1" alt="显示插件管理器">
</li><li>选择新的“插件”菜单项并安装一些对 HTML 编辑器有用的插件。浏览 <a href="http://plugins.netbeans.org/PluginPortal/">Plugin Portal</a> 并查找一些合适的插件。这也是最终用户更新其本地安装的应用程序的方式。
</li><li><p>右键单击应用程序的项目节点,然后选择“构建 ZIP 分发”选项。</p>
</li><li><tt>dist</tt> 文件夹(可在文件窗口中找到)中,您现在应该能够看到 ZIP 文件,扩展它即可看到其内容:</p>
<p><img border="1" src="../images/tutorials/htmleditor/unzipped-app-61.png" alt="生成的 ZIP 文件">
</p><p><b class="notes">注意:</b>如上所示,在 <tt>bin</tt> 文件夹中创建应用程序启动程序。
</p></li>
</ol>
<br />
<!-- ======================================================================================== -->
<h3><a name="webstart"></a>通过共享 NetBeans Web Start 存储库分发 HTML 编辑器</h3>
<p>
除了使用 ZIP 文件分发之外,我们还可以通过微调第一次启动应用程序时生成的 <tt>master.jnlp</tt> 文件进行 Webstart 分发。即使已经完成了此操作,分发准备工作也还没有结束。至少还需要修改信息部分以提供更好的描述和图标。
</p><p>
对标准 JNLP 基础结构的另一处更改是,使用了 www.netbeans.org 上提供的共享 JNLP 资源库。缺省情况下,为套件生成的 JNLP 应用程序始终包含其所有模块以及它所依赖的所有模块。这对于企业内部的联网使用可能很有用,但是它对于大多数广泛的互联网使用不太现实。对于互联网,如果在 NetBeans 平台上构建的所有应用程序都引用 NetBeans 模块中的某个存储库,它可能更好,这意味着可以共享这些模块,而不需要多次下载。
</p>
<p>
NetBeans 6.1 提供了一个此类资源库。它并非包含 NetBeans IDE 的所有模块,而是仅包含一些足以使非 IDE 应用程序非常类似 HTML 编辑器的模块。要使用存储库,您仅需要添加正确的 URL 来修改 <tt>platform.properties</tt>
</p>
<pre class="examplecode">
# share the libraries from common repository on netbeans.org
# this URL is for release60 JNLP files:
jnlp.platform.codebase=https://netbeans.org/download/6_0/jnlp/
</pre>
<p>
只要应用程序作为 JNLP 应用程序启动,就可以从 netbeans.org 下载其所有共享插件模块并和执行相同操作的其他程序共享。</p>
<br />
<!-- ======================================================================================== -->
<br>
<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&amp;subject=Feedback:%20NetBeans%20Platform%20Quick%20Start%20Tutorial">请将您的意见和建议发送给我们</a></div>
<br style="clear:both;" />
<!-- ======================================================================================== -->
<h2><a name="nextsteps"></a>另请参见</h2>
<p>这包括 NetBeans 平台快速入门教程。本文档介绍了如何创建用于在 IDE 中添加 Google 搜索工具栏的插件。关于在 NetBeans 平台上创建和开发应用程序的更多信息,请参见以下资源:
</p><ul>
<p></p><li><a href="https://platform.netbeans.org/tutorials">其他相关教程</a></li>
<p></p><li><a href="https://netbeans.org/download/dev/javadoc/">NetBeans API Javadoc</a></li>
</ul>
<!-- ======================================================================================== -->
</body>
</html>