<!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.1 快速入门教程</title> | |
<link rel="stylesheet" type="text/css" href="../../../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="Nodes API 使用简介。"> | |
<!-- Copyright (c) 2005 Sun Microsystems, Inc. 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://netbeans.org/kb/trails/platform.html">NetBeans 平台学习资源</a> 继续学习。学习资源提供全面的教程,内容涉及用于各种应用程序类型的 NetBeans API。如果要学习 "Hello World" 应用程序,可以跳过此教程,直接开始学习资源的学习。 | |
</p><p><b>目录</b></p> | |
<img src="../../images/articles/61/netbeans-stamp.gif" class="stamp" width="114" height="114" alt="此页面上的内容适用于 NetBeans IDE 6.1" title="此页面上的内容适用于 NetBeans IDE 6.0"> </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">调整 Favorites 窗口</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">NetBeans IDE</td> | |
<td class="tbltd1"><a href="http://download.netbeans.org/netbeans/6.1/final/">版本 6.1</a></td> | |
</tr> | |
<tr> | |
<td class="tbltd1">Java Developer Kit(JDK)</td> | |
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">版本 6</a> 或<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_final-61.png" border="1" alt="完成的 HTML 编辑器"> | |
<p><b class="notes">注意:</b>尽管这是一个非常简单的演示程序,但请您认真对待。这是一个<i>真正的</i> 程序,通过该程序可轻松编辑 HTML 页面,并且它还具有代码完成、验证和预定义 HTML 片断的功能。 | |
</p><p>本教程所创建的 HTML 编辑器是一个“在 NetBeans 平台上”构建的富客户端应用程序。这意味着 IDE 的核心,也<i><u>就是</u></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 border="1" src="../../images/tutorials/htmleditor/netbeans-platform-app-1.png" border="1" alt="新建项目向导"> | |
</p><p>单击“下一步”并将 NetBeans 平台Application 项目命名为 "NetBeansHTMLEditor"。单击“完成”按钮。</p> | |
</li><li>右键单击项目节点,选择“属性”选项,然后在 NetBeans 平台Application 的“项目属性”对话框中做少量更改: | |
<ul><p></p><li>在“构建”面板中,单击“创建独立应用程序”按钮,指定在 NetBeans 平台上生成富客端户应用程序。</p> | |
<p>确保为可执行文件添加了标记名称,为标题栏调整了应用程序标题,如下所示:</p> | |
<p><img border="1" src="../../images/tutorials/htmleditor/application_panel-61.png" border="1" alt="应用程序面板"> | |
</p></li><li>在“启动画面”面板中,注意可以为应用程序提供程序启动画面和进度提示条,如下所示: | |
</p> | |
<p><img border="1" src="../../images/tutorials/htmleditor/splash_screen_panel-61.png" border="1" alt="启动画面面板"> | |
</p><p><b class="notes">注意:</b>如果您还没有程序启动画面,请使用:<a href="../../images/tutorials/htmleditor/splash.gif">这个</a>。 | |
</p></li> | |
<li><p>在“项目属性”对话框的“库”面板中,您会看到一组“集群”列表。集群是相关模块的集合。需要选择的集群只有 <tt>gsf1</tt>、<tt>ide9</tt> 和 <tt>platform8</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.insane,\ | |
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.editor,\ | |
org.netbeans.modules.css.visual,\ | |
org.netbeans.modules.db,\ | |
org.netbeans.modules.db.core,\ | |
org.netbeans.modules.db.drivers,\ | |
org.netbeans.modules.db.kit,\ | |
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.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.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.timers,\ | |
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=\ | |
gsf1,\ | |
ide9,\ | |
platform8 | |
nbplatform.active=default</pre> | |
</li></ul></li> | |
<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 层”字段中,输入包的名称并附加 "layer.xml",比如 "org/netbeans/brandingmodule/layer.xml",然后单击“完成”。 | |
<p><b class="notes">注意:</b>如果没有在此字段中输入 layer.xml 文件的位置,则将不会创建该文件。在这种情况下,在主包中创建一个名为 "layer.xml" 的文件并以如下方式手动在“模块清单”中注册。 | |
</p><p></p><pre>OpenIDE-Module-Layer:org/netbeans/brandingmodule/layer.xml</pre> | |
</li><li>在标记模块中,展开 <tt>layer.xml</tt> 节点。此时将出现两个子节点:</p> | |
<p><img border="1" src="../../images/tutorials/htmleditor/expanded-xml-layer-61.png" alt="展开 XML 层文件"> | |
</p><p><b class="notes">注意:</b>在手动添加 layer.xml 文件的情况下,您必须扩展 Important Files 节点才能扩展其中的 XML Layer 节点。 | |
</p></li><li>在 <tt><this layer in context></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"><folder name="Menu"> | |
<folder name="Edit"> | |
<file name="org-netbeans-modules-editor-MainMenuAction$StartMacroRecordingAction.instance_hidden"/> | |
<file name="org-netbeans-modules-editor-MainMenuAction$StopMacroRecordingAction.instance_hidden"/> | |
</folder> | |
</folder></pre> | |
<p> | |
上面代码片段的结果是,另一个模块提供的<tt>“启动宏记录”</tt>和<tt>“停止宏记录”</tt>操作从菜单中被您标记模块移除。要再次显示它们,只需从 <tt>layer.xml</tt> 文件中删除上述标记。 | |
</p></li><li><p>使用上一步中介绍的方法,根据需要隐藏工具栏、工具栏按钮、菜单和菜单项。</p> | |
<p>完成此步骤后,查看 <tt>layer.xml</tt> 文件。这样做时,您应该看到类似下文的内容,具体取决于您所删除的条目:</p> | |
<p></p><pre><?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "https://netbeans.org/dtds/filesystem-1_1.dtd"> | |
<filesystem> | |
<folder name="Menu"> | |
<file name="BuildProject_hidden"/> | |
<folder name="File"> | |
<file name="Separator2.instance_hidden"/> | |
<file name="SeparatorNew.instance_hidden"/> | |
<file name="SeparatorOpen.instance_hidden"/> | |
<file name="org-netbeans-modules-project-ui-CloseProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-CustomizeProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-NewFile.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-NewProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-OpenProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-RecentProjects.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-SetMainProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-groups-GroupsMenu.shadow_hidden"/> | |
</folder> | |
<file name="Refactoring_hidden"/> | |
<file name="RunProject_hidden"/> | |
<folder name="Window"> | |
<file name="ViewRuntimeTabAction.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-logical-tab-action.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-physical-tab-action.shadow_hidden"/> | |
</folder> | |
</folder> | |
</filesystem></pre> | |
</li></ol> | |
<!-- ===================================================================================== --> | |
<h2 class="tutorial"><a name="tweakingthewindowlayout"></a>调整窗口布局</h2> | |
<p> | |
使用 <tt><this layer in context></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><this layer in context></tt> 节点处,右键单击 <tt>Windows2</tt> 节点,然后选择 Find,如下所示:</p> | |
<p><img border="1" src="../../images/tutorials/htmleditor/find-favorites-61.png" alt="调用 Find 菜单"> | |
</p></li><li>搜索名称为 <tt>Favorites</tt> 的对象,忽略大小写。我们将找到两个文件: | |
</p> | |
<p><img border="1" src="../../images/tutorials/htmleditor/find-favorites2-61.png" alt="查找 Favorites 窗口"> | |
</p><p> | |
第一个文件定义组件的外观和创建方式。由于不需要更改外观以及创建方式,因此也不需要修改该文件。第二个文件对您的意义较大,它包含以下内容: | |
</p> | |
<pre class="examplecode"> | |
<tc-ref version="2.0"> | |
<module name="org.netbeans.modules.favorites/1" spec="1.1" /> | |
<tc-id id="favorites" /> | |
<state opened="false" /> | |
</tc-ref></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>navigatorTC.wstcref</tt>。Navigator 的开启状态为 <tt>true</tt>。将它更改为 <tt>false</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 border="1" src="../../images/tutorials/htmleditor/wstcrefs-overridden-61.png" alt="覆盖 Favorites 布局。"> | |
</p><p>查看 <tt>layer.xml</tt> 文件,现在它应该包含以下内容。如果没有,则将以下内容复制并粘贴到 <tt>layer.xml</tt> 文件。 | |
</p><pre><?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "https://netbeans.org/dtds/filesystem-1_1.dtd"> | |
<filesystem> | |
<folder name="Menu"> | |
<file name="BuildProject_hidden"/> | |
<folder name="File"> | |
<file name="Separator2.instance_hidden"/> | |
<file name="SeparatorNew.instance_hidden"/> | |
<file name="SeparatorOpen.instance_hidden"/> | |
<file name="org-netbeans-modules-project-ui-CloseProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-CustomizeProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-NewFile.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-NewProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-OpenProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-RecentProjects.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-SetMainProject.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-groups-GroupsMenu.shadow_hidden"/> | |
</folder> | |
<file name="Refactoring_hidden"/> | |
<file name="RunProject_hidden"/> | |
<folder name="Window"> | |
<file name="ViewRuntimeTabAction.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-logical-tab-action.shadow_hidden"/> | |
<file name="org-netbeans-modules-project-ui-physical-tab-action.shadow_hidden"/> | |
</folder> | |
</folder> | |
<folder name="Windows2"> | |
<folder name="Modes"> | |
<folder name="commonpalette"> | |
<file name="CommonPalette.wstcref" url="CommonPaletteWstcref.xml"/> | |
</folder> | |
<folder name="explorer"> | |
<file name="favorites.wstcref" url="favoritesWstcref.xml"/> | |
<file name="projectTabLogical_tc.wstcref" url="projectTabLogical_tcWstcref.xml"/> | |
<file name="projectTab_tc.wstcref" url="projectTab_tcWstcref.xml"/> | |
<file name="runtime.wstcref" url="runtimeWstcref.xml"/> | |
</folder> | |
<folder name="navigator"> | |
<file name="navigatorTC.wstcref" url="navigatorTCWstcref.xml"/> | |
</folder> | |
</folder> | |
</folder> | |
</filesystem></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> 内创建一个新文件夹结构。新的文件夹应该命名为 <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="标记 Favorites 窗口"> | |
</p><p>这个文件夹结构和资源文件与 Favorites 窗口相关的 NetBeans 资源中的文件夹结构相匹配。 | |
</p></li><li>添加在下面屏幕截图中显示的字符串,来覆盖 Favorites 窗口资源中匹配的资源文件所定义的相同字符串。</p> | |
<p><img border="1" src="../../images/tutorials/htmleditor/favorites-branding-61b.png" alt="标记 Favorites 窗口"> | |
</p><p>为了简化此步骤,复制并粘贴上文定义的字符串: | |
</p><pre>Favorites=HTML Files | |
ACT_AddOnFavoritesNode=&Find HTML Files... | |
ACT_Remove=&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> | |
<!-- ===================================================================================== --> | |
<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_final-61.png" border="1" alt="打开 HTML 文件"> | |
</li></ol> | |
<!-- ===================================================================================== --> | |
<!-- ===================================================================================== --> | |
<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 border="1" src="../../images/tutorials/htmleditor/auto-update-61.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> | |
<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&subject=Feedback:%20NetBeans%20Platform%206.1%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://netbeans.org/kb/trails/platform.html">其他相关教程</a></li> | |
<p></p><li><a href="https://netbeans.org/download/dev/javadoc/">NetBeans API Javadoc</a></li> | |
</ul> | |
<hr> | |
<!-- ======================================================================================== --> | |
</ol></ol></body> | |
</html> |