| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- |
| Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. |
| --> |
| |
| <html> |
| <head> |
| <title>国际化 GUI 窗体 - NetBeans IDE 教程</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > |
| <meta name="KEYWORDS" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION"> |
| <meta name="description" content="Tutorial - Internationalization of GUI Form in NetBeans IDE"> |
| <link rel="stylesheet" href="../../../netbeans.css"> |
| <meta name="author" content="Jana Maleckova, Marek Grummich"> |
| <meta name="description" content="This tutorial shows you how to set up internationalization for a single form and for a whole project." > |
| </head> |
| <body> |
| <h1>国际化 GUI 窗体</h1> |
| <p>本教程将指导您完成在 NetBeans IDE 中进行国际化的一些基本步骤。我们将对一个窗体设置国际化,并在稍后设计该窗体。接下来,我们会国际化整个项目,该项目在几个不同的包中包含若干窗体。您可以通过指定自动国际化或使用专门的向导来国际化应用程序。</p> |
| <p class="align-center"><b>预计时间:30 分钟</b></p> |
| |
| <p><strong>目录</strong></p> |
| <img alt="此页上的内容适用于 NetBeans IDE 7.0 和更高版本" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="此页上的内容适用于 NetBeans IDE 7.0 和更高版本"> |
| <ul class="toc"> |
| <li><a href="#about">国际化的原理</a></li> |
| <li><a href="#Exercise_1">如何在设计时设置自动国际化</a></li> |
| <li><a href="#Exercise_2">国际化整个项目</a></li> |
| <li><a href="#Exercise_3">国际化单个窗体</a></li> |
| <li><a href="#nextsteps">另请参见</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="http://netbeans.org/downloads/index.html" target="_blank">NetBeans IDE</a></td> |
| <td class="tbltd1">版本 7.0 或更高版本 </td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java 开发工具包 (JDK)</a></td> |
| <td class="tbltd1">版本 6、7 或 8 </td> |
| </tr> |
| </tbody> |
| </table> |
| <h2 class="tutorial"><a name="about"></a>国际化的原理</h2> |
| <p class="tutorial">通过进行国际化,可以根据不同的语言和地区来改编应用程序,而无需进行工程更改或重新编译。国际化程序允许将文本性元素(如状态消息和 GUI 组件标签)存储在源代码外部并对其进行动态检索,而不是在程序中对其进行固定编码。</p> |
| |
| <p class="tutorial">通常将国际化字符串以键/值对的形式存储在属性文件中。键是程序用于检索文本的标识符,而值是实际文本。对于转换程序所用的每种语言环境(或语言),都将创建一个属性文件。键在每种语言环境中都相同,只是字符串不同。 </p> |
| <p class="tutorial">IDE 提供了用于执行下列各项操作的工具:</p> |
| <ul> |
| <li>在创建 GUI 窗体或 Java 程序时插入国际化字符串</li> |
| <li>将单个文件或文件组中的所有固定编码字符串替换为国际化字符串</li> |
| </ul> |
| <h2><a name="Exercise_1"></a>在设计时国际化 GUI 窗体 </h2> |
| <p>在此练习中,我们将打开 Java 应用程序演示项目,其中包含使用 GUI 构建器创建的常用查找对话框。接下来,我们将对窗体 FindDialog.java 启用自动国际化。为了测试已国际化的 GUI 窗体,我们将在属性文件中添加一种新的语言环境,然后在非默认语言环境下运行该窗体。 </p> |
| <div class="indent"> |
| <h3 class="tutorial">打开示例项目</h3> |
| <ol> |
| <li> 下载 <a href="https://netbeans.org/files/documents/4/770/InternationalizeDemo.zip" target="_blank">InternationalizeDemo.zip</a> 项目并将其解压缩到您计算机上的任何位置。 </li> |
| <li>选择 "File"(文件)> "Open Project"(打开项目),导航至您在上一步中解压缩的 <tt>InternationalizeDemo</tt> 项目,然后单击 "Open"(打开)。项目文件夹可能包含在同样名为 <tt>InternationalizeDemo</tt> 的文件夹中。</li> |
| <li>展开 "Source Packages"(源包)> "Demo"(演示),然后双击 <tt>FindDialog.java</tt>。将在 GUI 构建器中打开样例窗体。 |
| <p class="align-center"> <img alt=""Find"(查找)对话框" border="1" src="../../../images_www/articles/72/java/gui-automatic-i18n/finddialog_ai18n.png"> |
| </p> |
| |
| </li> |
| </ol> |
| <h3 class="tutorial">启用自动国际化</h3> |
| <ol> |
| <li>在 "Navigator"(导航器)窗口中选择根节点(名为 <tt>Form FindDialog</tt>(窗体 FindDialog))。 |
| <p class="align-center"><img src="../../../images_www/articles/80/java/gui-automatic-i18n/navigator.png" border="1"></p></li> |
| <li>在 "Properties"(属性)窗口中,选中 "Automatic Internationalization"(自动国际化)属性中的复选框。 |
| |
| <p class="align-center"><img src="../../../images_www/articles/80/java/gui-automatic-i18n/properties.png" border="1"></p> |
| |
| </li> |
| <li> 在 "GUI Form Format Upgrade"(GUI 窗体格式升级)对话框中,单击 "Upgrade"(升级)。 |
| <p>如果选中该复选框,则 IDE 将按照 <tt>Properties Bundle File</tt>(属性包文件)属性中的设置在 <tt>demo</tt> 包中创建 <tt>Bundle.properties</tt> 文件。 |
| </p> |
| <p class="align-center"><img src="../../../images_www/articles/80/java/gui-automatic-i18n/bundle_new.png"></p> |
| <p>如果您需要在其他位置创建 <tt>Bundle.properties</tt> 文件,则可以单击 "Properties Bundle File"(属性包文件)右侧的省略号 (...) 按钮,然后选择一个位置,或者直接在该属性的文本字段中键入路径。</p> |
| |
| </li> |
| <li>在 "Projects"(项目)窗口中,双击 <tt>Bundle.properties</tt> 节点,或者右键单击该节点,然后选择 "Edit"(编辑)。 |
| <p>将在源代码编辑器中打开该属性文件。正如您所看到的,将为窗体 <tt>FindDialog.java</tt> 生成所有相应的键和值。(每个键的名称是从窗体文件名和组件变量名派生的。例如,键 <tt>FindDialog.jLabel1.text</tt> 是为窗体文件 <tt>FindDialog</tt> 中包含的变量名为 <tt>jLabel1</tt> 的组件生成的。在此示例中,值 <tt>jLabel1</tt> 表示组件的 "text" 属性。</p> |
| </li> |
| <li>关闭 <tt>Bundle.properties</tt> 文件。 </li></ol> |
| <h3 class="tutorial">国际化各个 GUI 组件</h3> |
| <p>现在,我们将使用 GUI 构建器为窗体中的 JLabel 和 JButton 输入国际化字符串。 </p> |
| <ol> |
| |
| <li>在设计区域中选择相应的 GUI 组件(例如 <tt>jLabel1</tt>)。</li> |
| <li>在 "Properties"(属性)窗口中,单击 "text" 属性的省略号 (...) 按钮。 |
| <p class="note"><b>注:</b>您还可以对具有字符串值的其他属性进行国际化,例如助记符、可访问的名称、可访问的描述符和工具提示。</p></li> |
| <li>属性编辑器将切换至资源包模式。检查 "Bundle Name"(包名)字段是否设置为 <tt>demo.Bundle</tt>,以及 "Key"(键)字段是否包含字符串 <tt>FindDialog.jLabel1.text</tt>。</li> |
| <li>在 "Value"(值)字段中键入 <tt>Find What:</tt>。 </li> |
| <li>单击 "OK"(确定)。</li> |
| </ol> |
| <p>对所有组件重复执行以上步骤,使该窗体如下图所示:</p> |
| |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/finddialog_new.png" rel="lytebox" title="国际化窗体"> <img alt="国际化窗体" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/finddialog_new_small.png"></a></p> |
| |
| <p class="note"><b>注:</b>可使用更便捷的方法来完成步骤 1 至 5 的操作:只需在 "Design"(设计)视图中双击 <tt>jLabel1</tt>,将其文本从 <tt>jLabel1</tt> 更改为 <tt>Find What:</tt>,然后按 Enter 键即可。其结果与以上提供的步骤所得到的结果相同。</p> |
| |
| <p>要使组件的宽度相同,请完成以下步骤:</p> |
| <ol> |
| <li>按住 Ctrl 键单击窗体中的所有八个 jCheckBox 将它们选中。</li> |
| <li>在选中了这些 jCheckBox 的情况下,右键单击其中任何一个,然后从弹出式菜单中选择 "Same Size"(相同大小)> "Same Width"(相同宽度)。</li> |
| <li>对三个 jButton 执行步骤 1 至 2 的操作。</li> |
| </ol> |
| |
| <a name="newlocale"></a> |
| |
| |
| |
| <h3 class="tutorial">添加新语言环境</h3> |
| <ol> |
| <li>在 "Navigator"(导航器)窗口中选择根节点(<tt>Form FindDialog</tt>(窗体 FindDialog)节点)。</li> |
| <li>在 "Properties"(属性)窗口中,单击 "Design Locale"(设计语言环境)属性的省略号 (...) 按钮。</li> |
| <li>在 "New Locale"(新建语言环境)对话框中,从 <tt>Predefined Locales:</tt>(预定义的语言环境:)组合框中选择 <tt>es_ES</tt>。</li> |
| <li>单击 "OK"(确定)。 |
| <p><tt>Bundle.properties</tt> 节点下将显示新语言环境,如下所示:</p> |
| <p class="align-center"><img alt="带有多个区域设置的属性文件" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/addlocale_new.png"></p> </li> |
| <li>在 "Projects"(项目)窗口中,右键单击 <tt>Bundle.properties</tt>,然后选择 "Open"(打开)。</li> |
| <li>将相应表列中的各条消息转换为新语言(例如西班牙语),如下所示: |
| <p class="align-center"> |
| <a href="../../../images_www/articles/72/java/gui-automatic-i18n/bundles_new.png" rel="lytebox" title="带有多个区域设置的属性编辑器"> <img alt="带有多个区域设置的属性编辑器" border="1" src="../../../images_www/articles/72/java/gui-automatic-i18n/bundles_new_small.png"></a></p> |
| </li> |
| <li>按 Ctrl-S 组合键保存所做的编辑。</li> |
| <li>选择 <tt>FindDialog.java</tt> 标签,以显示要国际化的窗体。</li> |
| <li>在 "Navigator"(导航器)窗口中右键单击根节点,然后选择 "Reload Form"(重新加载窗体)(或者,按 Ctrl-R 组合键)。</li> |
| <li>在显示的 "Question"(问题)对话框中单击 "Save"(保存)。<br>将重新打开该窗体,并在设计区域中加载西班牙语语言环境,如下所示: |
| |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/finddialog_es_new.png" rel="lytebox" title="显示西班牙语消息的设计区域"> <img alt="显示西班牙语消息的设计区域" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/finddialog_es_new_small.png"></a></p> |
| </li> |
| </ol> |
| <h3 class="tutorial">测试非默认语言环境</h3> |
| <ol> |
| <li>在 "Projects"(项目)窗口中,右键单击 InternationalizeDemo 项目,然后选择 "Properties"(属性)。</li> |
| <li>在 "Categories"(类别)窗格中,选择 "Run"(运行)节点。</li> |
| <li>在 "VM Options"(VM 选项)字段中输入 <tt>-Duser.language=es -Duser.country=ES</tt>。 |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/prjproperties.png" rel="lytebox" title="&quot;Properties&quot;(属性)对话框"> <img alt="&quot;Properties&quot;(属性)对话框" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/prjproperties_small.png"></a></p> |
| </li> |
| <li>单击 "OK"(确定)。</li> |
| <li>右键单击 "InternationalizeDemo" 项目,然后选择 "Run"(运行)。 |
| <p>IDE 将在西班牙语语言环境中运行 <tt>FindDialog</tt> 对话框,如下所示。</p> |
| |
| <p class="align-center"> |
| <a href="../../../images_www/articles/72/java/gui-automatic-i18n/run.png" rel="lytebox" title="使用西班牙语语言环境的对话框"> <img alt="使用西班牙语语言环境的对话框" border="1" src="../../../images_www/articles/72/java/gui-automatic-i18n/run_small.png"></a></p> |
| </li> |
| </ol> |
| </div> |
| <h2><a name="Exercise_2"></a>国际化整个项目</h2> |
| <p>通常,我们在默认语言环境中拥有几个文件,并且系统要求我们改编这些文件,以便将其转换为其他语言。国际化向导是用于执行此任务的最佳工具,因为它可以一次国际化多个文件。我们将在 GUI 窗体示例项目中演示此功能,该项目包含在<a href="quickstart-gui.html">设计 Swing GUI</a> 教程中创建的窗体。 </p> |
| <div class="indent"> |
| <h3 class="tutorial"> 创建样例项目 </h3> |
| <ol> |
| <li>选择 "File"(文件)> "New Project"(新建项目),或者单击 IDE 工具栏中的 "New Project"(新建项目)图标。 </li> |
| <li>在 "Categories"(类别)窗格中,选择 "Samples"(样例)> "Java" 节点。在 "Projects"(项目)窗格中,选择 "GUI Form Examples"(GUI 窗体示例)。单击 "Next"(下一步)。</li> |
| <li>在 "Project Name"(项目名称)字段中输入 <tt>GUIFormExamples</tt>,然后指定项目位置(例如 <tt>/space/projects</tt>)。</li> |
| <li>单击 "Finish"(完成)。</li> |
| </ol> |
| |
| <p class="align-center"><img alt="样例窗体项目" border="1" src="../../../images_www/articles/72/java/gui-automatic-i18n/formexamples.png"></p> |
| |
| <h3 class="tutorial"> 准备属性文件 </h3> |
| <ol> |
| <li>选择 "File"(文件)> "New File"(新建文件),或者单击 IDE 工具栏中的 "New File"(新建文件)图标。</li> |
| <li>在 "Categories"(类别)窗格中,选择 "Other"(其他)节点;在 "File Types"(文件类型)窗格中,选择 "Properties File"(属性文件)。单击 "Next"(下一步)。</li> |
| <li> 在 "File Name"(文件名)字段中输入 <tt>ContactEditor</tt>。</li> |
| <li>单击 "Browse"(浏览),然后在 "Browse Folders"(浏览文件夹)对话框中,将 <tt>GUIFormExamples/src/examples</tt> 文件夹指定为文件位置。</li> |
| <li>单击 "Select Folder"(选择文件夹)。</li> |
| <li>单击 "Finish"(完成)。 |
| <p>IDE 将创建 <tt>ContactEditor.properties</tt> 文件并在源代码编辑器中将其打开。 </p> |
| <p>重复上述步骤以创建另一个 <tt>Antenna.properties</tt> 文件。 </p> |
| </li> |
| </ol> |
| |
| <p class="align-center"> <img alt="带有属性文件的项目" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/ceprjprops.png"> </p> |
| |
| <h3 class="tutorial">调用国际化向导</h3> |
| <ol> |
| <li>在主菜单中,选择 "Tools"(工具)> "Internationalization"(国际化)> "Internationalization Wizard"(国际化向导)。 </li> |
| <li>在该向导的第一页上,单击 "Add Source(s)"(添加源)。</li> |
| <li>在 "Select Sources"(选择源)对话框中,展开 <tt>Source Packages</tt>(源包)> <tt>Examples</tt>(示例)节点,然后按住 Ctrl 键单击 <tt>Antenna.java</tt>、<tt>ContactEditor.java</tt> 和 <tt>Find.java</tt> 文件将其选中。</li> |
| <li>单击 "OK"(确定)。 |
| <p>源文件将显示在该向导的第一页中,如下所示:</p> |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/i18nwizardone.png" rel="lytebox" title="国际化向导"> <img alt="国际化向导" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/i18nwizardone_small.png"></a></p></li> |
| <li>为了便于演示,选择 <tt>examples.Find</tt>,然后单击 "Remove Source(s)"(删除源)按钮。</li> |
| <li>单击 "Next"(下一步)。 </li> |
| <li>检查国际化向导是否提供了正确的属性文件 <tt>examples.Antenna</tt> 和 <tt>examples.ContactEditor</tt>。如果未提供,请使用 "Select Resource"(选择资源)按钮来选择正确的属性文件。 |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/i18nwizardtwo.png" rel="lytebox" title="国际化向导的第 2 页"> <img alt="国际化向导的第 2 页" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/i18nwizardtwo_small.png"></a></p> |
| </li> |
| <li>单击 "Next"(下一步)。 </li> |
| <li>跳过该向导的第 3 页(因为您不打算创建任何字段并修改其他值),然后单击 "Next"(下一步)。</li> |
| <li>所有固定编码字符串都将显示在国际化向导的最后一步中,您可以在该步中确定将哪些字符串包含在属性文件中(使用复选框)。您也可以进一步定制各个键、值、注释和替换字符串的格式,方法是单击字符串的省略号 (...) 按钮。 |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/i18nwizardthree.png" rel="lytebox" title="国际化向导的第 4 页"> <img alt="国际化向导的第 4 页" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/i18nwizardthree_small.png"></a></p> |
| </li> |
| <li>单击 "Finish"(完成)。 |
| <p>现在,已完成源代码的国际化,接下来可以按照先前所述<a href="#newlocale">添加</a>和<a href="#testlocale">测试</a>其他语言环境。 </p> |
| </li> |
| </ol> |
| </div> |
| <h2><a name="Exercise_3"></a>国际化单个窗体</h2> |
| <p>使用自动国际化功能是国际化 GUI 窗体的最简便方法。但是,如果您没有安装更新包,或者还希望国际化不是由窗体编辑器生成的代码,则可以使用 "Internationalize"(国际化)窗口。(此功能可处理任何 <tt>.java</tt> 文件,而不仅仅是通过窗体编辑器创建的文件)。下面的示例使用了 "Internationalization"(国际化)窗口,该窗口是 NetBeans IDE 默认安装的一部分。</p> |
| <p>在此最后练习中,我们将重用 GUI 窗体示例项目并国际化 Find.java 窗体(在先前的练习中排除了该窗体)。我们将调用 "Internationalize"(国际化)对话框来替换此文件中的所有固定编码字符串。最后,我们将简要演示如何在编写程序时将国际化字符串插入源代码中。</p> |
| <div class="indent"> |
| <h3 class="tutorial"> 使用 "Internationalize"(国际化)对话框 </h3> |
| <ol> |
| <li>在 "Projects"(项目)窗口中,选择 <tt>Find.java</tt>,然后从主菜单中选择 "Tools"(工具)> "Internationalization"(国际化)> "Internationalize"(国际化)。 |
| <p>IDE 将显示 "Internationalization"(国际化)对话框,并预先填写 <tt>Find.java</tt> 源代码中的第一个固定编码字符串。 </p> |
| </li> |
| <li>单击 "Select"(选择)以选择特定的属性文件,或者创建新文件。 </li> |
| <li>在 "Select Resource Bundle"(选择资源包)对话框中,在 "File Name"(文件名)文本字段中输入 <tt>Find.properties</tt>,单击 "Create New"(新建),然后单击 "OK"(确定)。</li> |
| <li>您可以修改替换字符串的格式、键、值或注释(如有必要)。我们将仅保留默认值。</li> |
| <li>单击 "Replace"(替换)以确认更改,并将焦点移到下一个固定编码字符串上。 |
| <p>如果不需要替换固定编码字符串,请单击 "Skip"(跳过)按钮。</p> |
| |
| <p class="align-center"> |
| <a href="../../../images_www/articles/80/java/gui-automatic-i18n/i18ndialog.png" rel="lytebox" title=""Internationalize"(国际化)对话框"> <img alt=""Internationalize"(国际化)对话框" border="1" src="../../../images_www/articles/80/java/gui-automatic-i18n/i18ndialog_small.png"></a></p> |
| |
| </li> |
| </ol> |
| <h3 class="tutorial"> 插入单个国际化字符串 </h3> |
| <ol> |
| <li>在 "Projects"(项目)窗口中,右键单击 <tt>Find.java</tt>,然后选择 "Edit"(编辑)。 |
| <p>IDE 将在源代码编辑器中打开 <tt>Find.java</tt> 文件。 </p> |
| </li> |
| <li>滚动查看源代码并查找 main 方法。 </li> |
| <li>在 main 方法中插入以下用粗体显示的行: |
| <pre class="examplecode"> public static void main(String args[]) { |
| /* Set the Nimbus look and feel */ |
| //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> |
| /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. |
| * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html |
| */ |
| try { |
| javax.swing.UIManager.LookAndFeelInfo[] installedLookAndFeels=javax.swing.UIManager.getInstalledLookAndFeels(); |
| for (int idx=0; idx<installedLookAndFeels.length; idx++) |
| if ("Nimbus".equals(installedLookAndFeels[idx].getName())) { |
| javax.swing.UIManager.setLookAndFeel(installedLookAndFeels[idx].getClassName()); |
| break; |
| } |
| } catch (ClassNotFoundException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } catch (InstantiationException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } catch (IllegalAccessException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } catch (javax.swing.UnsupportedLookAndFeelException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } |
| //</editor-fold> |
| <b>System.out.println();</b> |
| /* Create and display the form */ |
| java.awt.EventQueue.invokeLater(new Runnable() { |
| public void run() { |
| new Find().setVisible(true); |
| } |
| }); |
| }</pre> |
| </li> |
| <li>将鼠标光标放在 <tt>System.out.println();</tt> 的圆括号内,以便作为参数插入国际化字符串。</li> |
| <li>按 Ctrl-Shift-J 组合键调用 "Insert Internationalized String"(插入国际化字符串)对话框(也可以从主菜单中选择 "Tools"(工具)> "Internationalization"(国际化)> "Insert Internationalized String"(插入国际化字符串))。</li> |
| |
| <li>对于 "Bundle Name"(包名),单击 "Select"(选择)按钮,选择 <tt>"Source Packages"(源包)> "Examples"(样例)</tt>文件夹,然后在 "File Name"(文件名)文本字段中输入 <tt>Find</tt> 作为包名。然后,单击 "OK"(确定)。<br>"Insert Internationalized String"(插入国际化字符串)对话框的 "Bundle Name"(包名称)字段显示 <tt>examples.Find</tt>。</li> |
| <li>在 "Key"(键)下拉框中键入 <tt>Start</tt>,并在 "Value"(值)字段中键入 <tt>Start Find Dialog</tt>。然后,单击 "OK"(确定)。 |
| <p class="align-center"><img src="../../../images_www/articles/80/java/gui-automatic-i18n/insi18nstring.png"></p> |
| </li> |
| <li>IDE 将插入国际化字符串: |
| <pre class="examplecode"> public static void main(String args[]) { |
| /* Set the Nimbus look and feel */ |
| //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> |
| /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. |
| * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html |
| */ |
| try { |
| javax.swing.UIManager.LookAndFeelInfo[] installedLookAndFeels=javax.swing.UIManager.getInstalledLookAndFeels(); |
| for (int idx=0; idx<installedLookAndFeels.length; idx++) |
| if ("Nimbus".equals(installedLookAndFeels[idx].getName())) { |
| javax.swing.UIManager.setLookAndFeel(installedLookAndFeels[idx].getClassName()); |
| break; |
| } |
| } catch (ClassNotFoundException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } catch (InstantiationException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } catch (IllegalAccessException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } catch (javax.swing.UnsupportedLookAndFeelException ex) { |
| java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); |
| } |
| //</editor-fold> |
| <b> System.out.println(java.util.ResourceBundle.getBundle("examples/Find").getString("Start"));</b> |
| /* Create and display the form */ |
| java.awt.EventQueue.invokeLater(new Runnable() { |
| public void run() { |
| new Find().setVisible(true); |
| } |
| }); |
| }</pre> |
| |
| </li> |
| </ol> |
| </div> |
| <br> |
| <div class="feedback-box" ><a href="/about/contact_form.html?to=3&subject=Feedback:Internationalizing%20a%20GUI%20Form%20in%20NetBeans%20IDE">发送有关此教程的反馈意见</a></div> |
| <br style="clear:both;" > |
| <h2><a name="nextsteps"></a>另请参见</h2> |
| <p>有关更多信息,请参见以下链接:</p> |
| <ul> |
| <li><i>使用 NetBeans IDE 开发应用程序</i>中的<a href="http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG920">实现 Java GUI</a></li> |
| <li><a href="../../trails/matisse.html">Java GUI 应用程序学习资源</a></li> |
| <li><a href="quickstart-gui.html">设计 Swing GUI</a></li> |
| <li><a href="http://wiki.netbeans.org/wiki/view/NetBeansUserFAQ" target="_blank">GUI 构建器常见问题解答</a> </li> |
| </ul> |
| |
| </body> |
| </html> |
| |