懵懵燈燈的BLOG

          寒夜孤燈點點星

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            56 隨筆 :: 10 文章 :: 22 評論 :: 0 Trackbacks

          ResourceBundle (Abstract):handleGetObject(String),getKeys()
          ?+ ListResourceBundle (Abstract) : getContent()
          ?+ PropertyResourceBundle
          ?
          ======================================

          用法:

          1. 取得PropertyResourceBundle的實例,我們使用以下靜態方法:

          ResourceBundle.getBundle(String base)
          ResourceBundle.getBundle(String base,Locale)
          ResourceBundle.getBundle(String base,Locale,ClassLoader)

          return ResourceBundle instance


          NOTE:? 其中的base可以使類名,也可以是資源文件的名稱。
          1) the Property File should be located as full qualified name,
          seperated by "/" or "." from class path, respect to the ClassLoader

          MyResource.properties?????? //default
          MyResource_zh.properties
          MyResource_de.properties


          2) the ResourceBundle Class should be located as full qualified name,
          seperated by "/" or "." from class path, respect to the ClassLoader

          MyResource.class?????//default parent by name
          MyResource_zh.class
          MyResource_de.class

          -------------------------------------------------------------
          public class MyResource extends ResourceBundle {

          ?@Override
          ?public Enumeration<String> getKeys() {
          ???? ResourceBundle parent = this.parent;
          ????
          ???? HashSet<String> s=new HashSet<String>();
          ????? return new Enumeration<String>(){
          ????? ?
          ????? ?int count=0;
          ?
          ????public boolean hasMoreElements() {
          ?????
          ?????return count<2;
          ????}
          ?
          ????public String nextElement() {
          ?????synchronized (MyResource.this) {
          ???????if(count++==0) return "okKey";
          ???????if(count++==1) return "cancelKey";
          ???????else return null;
          ?????}
          ????}
          ???};
          ?}

          ?@Override
          ?protected Object handleGetObject(String key) {
          ????if (key.equals("okKey")) return "Ok";
          ??????? if (key.equals("cancelKey")) return "Cancel";
          ??????? return null;
          ?}
          }

          //if some key not find, go to the parent
          public class MyResource_de extends MyResource {
          ?@Override
          ?protected Object handleGetObject(String key) {
          ????//if (key.equals("okKey")) return "Ok_de";
          ??????? if (key.equals("cancelKey")) return "Cancel_de";
          ??????? return null;
          ?}
          }


          3) the name convention:

          baseclass + "_" + language1 + "_" + country1 + "_" + variant1
          baseclass + "_" + language1 + "_" + country1
          baseclass + "_" + language1
          baseclass
          baseclass + "_" + language2 + "_" + country2 + "_" + variant2
          baseclass + "_" + language2 + "_" + country2
          baseclass + "_" + language2

          4) throws:

          java.lang.NullPointerException if baseName or locale is null
          MissingResourceException if no resource bundle for the specified base name can be found


          2. 使用ListResourceBundle

          public class MyResources extends ListResourceBundle {
          ???? protected Object[][] getContents() {
          ???????? return new Object[][] = {
          ???????? // LOCALIZE THIS
          ???????????? {"OkKey", "OK"},
          ???????????? {"CancelKey", "Cancel"},
          ???????? // END OF MATERIAL TO LOCALIZE
          ???????? };
          ???? }
          }

          3. 使用Parent

          // default (English language, United States)
          ?abstract 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
          ?abstract 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;
          ???? }
          ?}
          ?
          4. 取得bundle中的對象

          getString(String key)
          getStringArray(String key)
          getObject(String key)

          ?

          ?

          ?

          ?

          ?

          ?


          ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

          posted on 2007-12-11 13:53 懵懵燈燈 閱讀(1048) 評論(1)  編輯  收藏 所屬分類: Language_Java

          評論

          # re: [JAVA]java.util.ResourceBundle使用 2008-11-14 14:43 等等等
          什么玩意  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 怀安县| 论坛| 新源县| 吴堡县| 长宁县| 平潭县| 芒康县| 邢台市| 禹城市| 富民县| 新平| 行唐县| 镇赉县| 云和县| 丰县| 新建县| 淄博市| 莱西市| 满洲里市| 平乡县| 萨嘎县| 藁城市| 松潘县| 韶关市| 诸城市| 西吉县| 芜湖县| 鲜城| 云阳县| 伊金霍洛旗| 商水县| 河东区| 广昌县| 新晃| 仙游县| 孟津县| 西昌市| 弥渡县| 久治县| 房产| 阿鲁科尔沁旗|