懵懵燈燈的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 等等等
          什么玩意  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 吉木乃县| 樟树市| 乐东| 陕西省| 从江县| 顺昌县| 榆中县| 巧家县| 六枝特区| 衡阳市| 大足县| 高青县| 普陀区| 军事| 麻江县| 苏尼特左旗| 九寨沟县| 鄄城县| 湟中县| 嘉兴市| 镇坪县| 东山县| 祁连县| 吉林市| 冷水江市| 天祝| 上高县| 平顶山市| 林周县| 任丘市| 乌拉特后旗| 老河口市| 措勤县| 环江| 北川| 南木林县| 巴青县| 宁都县| 大丰市| 米泉市| 永昌县|