resourcebundle.html
来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 694 行 · 第 1/3 页
HTML
694 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:51:11 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>ResourceBundle (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.ResourceBundle class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="ResourceBundle (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ResourceBundle.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="RandomAccess.html" title="java.util 中的接口"><B>上一个类</B></A> <A HREF="Scanner.html" title="java.util 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../index.html@java_2Futil_2FResourceBundle.html" target="_top"><B>框架</B></A> <A HREF="ResourceBundle.html" target="_top"><B>无框架</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | <A HREF="#field_summary">字段</A> | <A HREF="#constructor_summary">构造方法</A> | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: <A HREF="#field_detail">字段</A> | <A HREF="#constructor_detail">构造方法</A> | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.util</FONT><BR>类 ResourceBundle</H2><PRE><A HREF="../lang/Object.html" title="java.lang 中的类">java.lang.Object</A> <IMG SRC="../../resources/inherit.gif" ALT="继承者 "><B>java.util.ResourceBundle</B></PRE><DL><DT><B>直接已知子类:</B> <DD><A HREF="ListResourceBundle.html" title="java.util 中的类">ListResourceBundle</A>, <A HREF="PropertyResourceBundle.html" title="java.util 中的类">PropertyResourceBundle</A></DD></DL><HR><DL><DT><PRE>public abstract class <B>ResourceBundle</B><DT>extends <A HREF="../lang/Object.html" title="java.lang 中的类">Object</A></DL></PRE><P>资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如 <code>String</code>),程序可以从适合当前用户语言环境的资源包中装入它。以这种方式可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(如果不是全部)特定于语言环境的信息隔离开来。 <p>这就使您所编写的程序可以:<UL type=SQUARE><LI> 轻松地本地化或翻译成不同的语言<LI> 一次处理多个语言环境<LI> 以后可以轻松地进行修改,支持更多的语言环境</UL> <P>资源包属于这样的系列,其成员共享一个公共的基本名称,但是名称中还有标识其语言环境的其他组件。例如,某个资源包系列的基本名称可能是 "MyResources"。该系列应该有一个默认资源包,其名称与其系列名相同( "MyResources"),并且如果不支持指定的语言环境,则此资源包应该用作最后的手段。然后,此系列可根据需要提供特定于语言环境的成员,例如一个名为 "MyResources_de" 的德语资源包。 <P>某个系列中的每个资源包都包含相同的项,但是已经针对该资源包所代表的语言环境翻译了各项。例如,"MyResources" 和 "MyResources_de" 可能有用在取消操作按钮上的 <code>String</code>。在 "MyResources" 中,<code>String</code> 可能含有 "Cancel",而在 "MyResources_de" 中则可能含有 "Abbrechen"。 <P>如果不同的国家有不同的资源,则可以进行限定:例如,"MyResources_de_CH" 是瑞士 (CH) 中包含德语 (de) 的对象。如果只想修改限定中的某些资源,就可以这样做。 <P>当程序需要特定于语言环境的对象时,它使用 <A HREF="ResourceBundle.html#getBundle(java.lang.String, java.util.Locale)"><CODE>getBundle</CODE></A> 方法加载 <code>ResourceBundle</code> 类: <blockquote> <pre> ResourceBundle myResources = ResourceBundle.getBundle("MyResources", currentLocale); </pre> </blockquote> <P>资源包包含键/值对。键惟一地标识了包中的特定于语言环境的对象。下面是一个 <code>ListResourceBundle</code> 示例,它包含了两个键/值对: <blockquote> <pre>public class MyResources extends ListResourceBundle { public Object[][] getContents() { return contents; } static final Object[][] contents = { // LOCALIZE THIS {"OkKey", "OK"}, {"CancelKey", "Cancel"}, // END OF MATERIAL TO LOCALIZE }; } </pre> </blockquote>键始终为 <code>String</code> 类型。在此示例中,两个键是 "OkKey" 和 "CancelKey"。在上面的示例中,值也是 <code>String</code> 类型,即 "OK" 和 "Cancel",但并非必须如此。值可以是任意对象类型。 <P>可以使用适当的 getter 方法从资源包中检索某个对象。因为 "OkKey" 和 "CancelKey" 都是字符串,所以应该使用 <code>getString</code> 来检索它们: <blockquote> <pre> button1 = new Button(myResources.getString("OkKey")); button2 = new Button(myResources.getString("CancelKey")); </pre> </blockquote>所有 getter 方法都需要的是将键作为参数并返回对象(如果找到的话)。如果未找到对象,则 getter 方法会抛出 <code>MissingResourceException</code>。 <P>除了 <code>getString</code>,ResourceBundle 还提供了获取字符串数组的方法 <code>getStringArray</code>,以及用于其他任意对象类型的 <code>getObject</code> 方法。使用 <code>getObject</code> 时,必须将结果强制转换为适当的类型。例如: <blockquote> <pre> int[] myIntegers = (int[]) myResources.getObject("intList"); </pre> </blockquote> <P>Java 2 平台提供了两个 <code>ResourceBundle</code> 的子类,即 <code>ListResourceBundle</code> 和 <code>PropertyResourceBundle</code>,这为创建资源提供了一种相当简单的方式。正如在前面示例中所看到的,<code>ListResourceBundle</code> 以键/值对的列表方式管理其资源。<code>PropertyResourceBundle</code> 则使用一个属性文件来管理其资源。 <p>如果 <code>ListResourceBundle</code> 或 <code>PropertyResourceBundle</code> 无法满足您的需求,那么可以编写自己的 <code>ResourceBundle</code> 子类。子类必须重写这两个方法:<code>handleGetObject</code> 和 <code>getKeys()</code>。 <P>下面是一个极其简单的 <code>ResourceBundle</code> 子类示例——MyResources,它管理两个资源(对于大量的资源,可能应该使用 <code>Hashtable</code>)。注意,如果某个“父级”<code>ResourceBundle</code> 处理具有相同值的相同键(如下面的 okKey),则无需提供值。<p><strong>示例:</strong> <blockquote> <pre> // default (English language, United States) public class MyResources extends ResourceBundle { public Object handleGetObject(String key) { if (key.equals("okKey")) return "Ok"; if (key.equals("cancelKey")) return "Cancel"; return null; } } // German language public class MyResources_de extends MyResources { public Object handleGetObject(String key) { // don't need okKey, since parent level handles it. if (key.equals("cancelKey")) return "Abbrechen"; return null; } } </pre> </blockquote>不必限制只使用 <code>ResourceBundle</code> 的单个系列。例如,可以有异常消息 <code>ExceptionResources</code> 的包集合(<code>ExceptionResources_fr</code>、<code>ExceptionResources_de</code> 等)和窗口小部件 <code>WidgetResource</code> 的包集合(<code>WidgetResources_fr</code>、<code>WidgetResources_de</code> 等);可以按自己喜欢的方式分解资源。<P><P><DL><DT><B>从以下版本开始:</B></DT> <DD>JDK1.1</DD><DT><B>另请参见:</B><DD><A HREF="ListResourceBundle.html" title="java.util 中的类"><CODE>ListResourceBundle</CODE></A>, <A HREF="PropertyResourceBundle.html" title="java.util 中的类"><CODE>PropertyResourceBundle</CODE></A>, <A HREF="MissingResourceException.html" title="java.util 中的类"><CODE>MissingResourceException</CODE></A></DL><HR><P><!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>字段摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected <A HREF="ResourceBundle.html" title="java.util 中的类">ResourceBundle</A></CODE></FONT></TD><TD><CODE><B><A HREF="ResourceBundle.html#parent">parent</A></B></CODE><BR> 此包的父包。</TD></TR></TABLE> <!-- ======== CONSTRUCTOR SUMMARY ======== -->
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?