学习Java:ResourceBundle

来源:互联网 发布:传奇霸业检测网络异常 编辑:程序博客网 时间:2024/04/30 05:20
 

通过ResourceBundle 将写在程序中字符串放到配置文件中,同时可以方便的实现国际化



正则表达式与 Java ResourceBundle 相结合的一种数据验证技术。Java 语言对正则表达式的支持可以大大简化数据验证。您

可以将数据与正则表达式进行比较,如果它们匹配,则知道数据是有效的。另一方面,Java ResourceBundle 包含翻译好的字

符串,用于匹配用户机器上的当前语言和国家设置。ResourceBundle 中的字符串通常是出现在应用程序中的文本,但是也可

以是特定于某个地区的任何东西.

1。将字符串抽取出来
通过Eclipse的source-》Externalize String 来生成ResourceBundle相关的类和文件
答案取决于 ResourceBundle 是如何创建的

无论何时运行一个 Java 程序,它都有一个特定的地区。地区由两个字母的语言代码和两个字母的国家代码来指定,这些代码

是由 ISO 标准定义的。地区代码还有一个不常用的变种部分,用于更精确地指定特定的地区。下面是一些例子:
en_US 是 U.S. English 地区。
en_CA 是 Canadian English 地区。
fr_CA 是 French Canadian 地区。
en 是 English 地区。
en_US_UNIX 是 U.S. English 地区的 UNIX 变种。至于该变种的意义及其用法,是由应用程序的编写者定义的。


当创建一个新的 ResourceBundle 时,Java 运行时根据当前的地区查找文件。例如,如果当前地区是en_US,那么 Java 运行

时依次查找以下文件:
messages_en_US.properties
messages_en.properties
messages.properties
当 ResourceBundle 收集翻译好的字符串时,在 messages_en_US.properties 中发现的任何字符串都具有比

messages_en.properties 和 messages.properties 中具有相同名称的字符串更高的优先级。如果运行时没有发现任何特定于

地区的文件,那么它将使用 messages.properties 中的字符串。

记住,创建 ResourceBundle 的代码指定了文件名 messages.properties。该文件名不会随着地区的改的代码也不需要做出更

改。您只需指定这个文件名,Java 运行时可以自动得出应该装载哪个特定于地区的文件。

一个特定于地区的 .properties 文件只包含不同于更通用的 .properties 文件的字符串

在运行时设置地区:

第一种方法是在运行应用程序的时候设置 user.language 和 user.country 这两个系统属性
java -Duser.language=XXX -Duser.country=XX

第二种方法是在应用程序中设置地区。通过 Locale.setDefault() 方法可以在代码中设置默认的地区。


Swing 提供了 javax.swing.JFormattedTextField 类。利用这个类可以为文本域定义一个掩码