懵懵燈燈的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 懵懵燈燈 閱讀(1043) 評論(1)  編輯  收藏 所屬分類: Language_Java

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 奉节县| 炉霍县| 峨山| 绥中县| 绥滨县| 嵊泗县| 江都市| 雅安市| 万州区| 宁远县| 大英县| 色达县| 建始县| 依安县| 沙田区| 渝北区| 阳城县| 盐边县| 阿鲁科尔沁旗| 迭部县| 通辽市| 思南县| 拜城县| 巨野县| 手游| 崇明县| 微山县| 得荣县| 宜宾市| 察隅县| 井研县| 平安县| 桐梓县| 新龙县| 周口市| 京山县| 海林市| 化德县| 花莲县| 凤庆县| 胶州市|