当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

<b>Java用户界面本地化实例摸索</b>[Java编程]

赞助商链接



  本文“<b>Java用户界面本地化实例摸索</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

国际化是使程序具有充足的机动性、能在世界上任何区域运行的历程.国际化所要求的必定后果是地方化――使一个程序可以运行在特定区域的历程.本文尝试用一个简单的例子来演示Java用户界面本地化.Java语言内核基于Unicode3.0(Java 1.4)供应了对差别国家和差别语言文字的内部支持,由于先天的缘由,Java关于国际化的支持远远要比C/C++来的优胜.

在我看来本地化必须满意以下的三个条件:

1、程序必须能读、写和操作本地化的文本.

2、程序在显示日期和时间、使数字格局化以及排序子串时,必须符合地方习惯.(通过java.text包里面的类可以实现这些要求)

3、全部用户可见的文本都能在运行时得到,而不是直接写入程序中.(通过java.util包里的ResourceBundle类和他的子类可以实现这些要求.)

实现这三个方面可以真正实现程序的国际化.

首先让我们来理解一下区域.区域代表一个地理上、政治上或文化上的区域.在Java中,区域由java.util.Locale类表示.区域常常以一种语言来定义,该语言则由其尺度的小写双字母代码表示.(比方:en代表英国,fr代表法国,zh代表中国),但有时刻语言是不能代表一个区域的,那就要在语言背面再加上一个国家或该国家的地域(比方:en_US代表美国,zh_TW).Locale类保存着一个静态的默许区域,它可以用Locale.setDefault()和Locale.getDefault()来设置和查询.一个程序可以生成和利用肆意数目的非默许Locale对象.

让我们再来看一下Unicode字符编码.Java利用Unicode的字符编码,其本身就是迈向国际化的一大步.Unicode编码其每个字符都占两个字节.用u****的情势表示.Unicode的字符可以等价于其他编码的字符(比方:从u0020到u007E的字符等价于ASCII和ISO8859-1字符的0x20到0x7E).

本文主如果对用户界面地方化,由于我利用的是资源束!所以有必要对资源束作一下注释.

为定义一束地方化的资源,你需求生成一个ResourceBundle(资源束)的子类并且供应handleGetObject()和getKeys()办法的定义.为了在程序中利用来自ResourceBundle的地方化资源,就需求先调用静态的getBundle()办法,用getBundle()得到一个ResourceBundle对象,然后再用getObject()办法去按照名字来查找资源.当然也可以利用getString()简单的把getObject()的返回值分配给一个String对象.GetBundle()办法采取basename_language_country_variait----没找到的话->basename_language_country----没找到的话->basename_language----没找到的话->basename(默许资源文件)的算法探求符合的资源.假如以上都没找到的话,则会抛出一个MissingResourceException非常.

目前我们来看一个简单的例子,若何使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=u4e2du56fd;
red.label=u7ea2u8272;
green.label=u7effu8272;
blue.label=u84ddu8272;

清单三:

# 文件Dorian_en_US.properties,是美国区域的资源束
# 它覆盖了默许资源束
Title=America;
red.label=Red;
green.label=Green;
blue.label=Blue ;

清单一和二定义了一个默许资源文件,和美国区域的资源文件.此中等号左边的字符串表示主键,它们是唯一的.为了得到主键对应的值,你可以调用ResourceBundle类的getString办法,并将主键作为参数.此外,文件中以“#”号开首的行表示注释行.需求注意的是清单二中的“u4e2du56fd”,它是字符“中国”的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"));


  以上是“<b>Java用户界面本地化实例摸索</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .