WEB开发网
开发学院WEB开发Jsp 实战Java用户界面本地化 阅读

实战Java用户界面本地化

 2008-01-05 20:13:34 来源:WEB开发网   
核心提示: 如何使java程序用户界面地方化?首先我们的程序需要查找特定Locale对象关联的资源包,所以应该定义一个Local对象,实战Java用户界面本地化,来获取本地默认的地区!然后可以调用ResourceBundle的getBundle方法,并将locale对象作为参数传入, 清单五: public class M

  如何使java程序用户界面地方化?首先我们的程序需要查找特定Locale对象关联的资源包,所以应该定义一个Local对象,来获取本地默认的地区!然后可以调用ResourceBundle的getBundle方法,并将locale对象作为参数传入。

  清单一:

  Locale locale = Locale.getDefault();      //获取地区:默认

  //获取资源束。如未发现则会抛出MissingResourceException异常

  ResourceBundle bundle = ResourceBundle.getBundle("PRoperties.Dorian",locale);

  清单一中的”Properties.Dorian”代表Properties包下以Dorian命名的默认资源文件。

  这样就可以使用资源文件了!让我们来看看资源文件是如何定义的。

  清单二:

  # Dorian.properties是默认的"Dorian"资源束文件。

  # 作为中国人,我用自己的地区作为默认

  Title=\u4e2d\u56fd

  red.label=\u7ea2\u8272

  green.label=\u7eff\u8272

  blue.label=\u84dd\u8272
 
  清单三:

  # 文件Dorian_en_US.properties,是美国地区的资源束

  # 它覆盖了默认资源束

  Title=America
  red.label=Red

  green.label=Green

  blue.label=Blue

  清单一和二定义了一个默认资源文件,和美国地区的资源文件。其中等号左边的字符串表示主键,它们是唯一的。为了获得主键对应的值,你可以调用ResourceBundle类的getString方法,并将主键作为参数。此外,文件中以“#”号开头的行表示注释行。 需要注重的是清单二中的“\u4e2d\u56fd”,它是字符“中国”的Unicode字符码。是使用Java自带的native2ascii工具转换的(native2ascii in.properties out.properties),这是为了不在程序界面中产生乱码。

  清单四:

  cmdRed.setText(bundle.getString("red.label"));

  cmdBlue.setText (bundle.getString("blue.label"));

  cmdGreen.setText (bundle.getString("green.label"));

  清单二中的cmdRed、cmdBlue、cmdGreen 为按钮。bundle.getString("red.label")为得到资源文件中主键是red.label的值。

  好了到此为止Java程序用户界面的本地化就是这么简单^_^不过,要提醒你的是在为用户界面事件编写事件监听器代码时,要格外小心。请看下面这段代码。

  清单五:

  public class MyApplet extends Japplet implements ActionListener{

  public void init(){

   JButton cancelButton=new JButton(“Cancel”);

   CancelButton.addActionListener(this);

   。。。

  }

  public void actionPerformed(ActionEvent e){

   String s=e.getActionCommand();

   if(arg.equals(“Cancel”);

   doCancel();

   else ……

  }

  }

Tags:实战 Java 用户界面

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接