學習Java:ResourceBundle

zybing發表於2007-08-14

透過ResourceBundle 將寫在程式中字串放到配置檔案中,同時可以方便的實現國際化

[@more@]


正規表示式與 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 類。利用這個類可以為文字域定義一個掩碼

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-955930/,如需轉載,請註明出處,否則將追究法律責任。