JavaSE 的MV模式(国际化)
?
JavaSE 的MV模式(国际化)一、简介
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
Java作为一个跨平台的东西,如果想着自己的产品推向世界,Java实现国际化,在现在现在编程工程上是必不可少的了。
?
********************************猥琐分割线*******************************
另外:
?????? 再说,很多童鞋都说我们缩写的应用软件都基本谈不上国际化,基本能在国内使用已经很了不起了。
我得反驳下这一个说法。
大家都熟知的我们在写web项目的时候通常都在使用MVC模式的开发,为什么~,那是具有一个巨大的有点,功能应用,图形显示,逻辑结构都分开了,利于维护,利于分工。
那么我们就应该想到,如果这一个模式也应用的JavaSE上面的画,我们之前所学的东西不都具有这些优点了吗?不能说完全的是,也不能说完全的没有。
做过android项目开发的童鞋相对都有那么一定的经验。写每一个activity的时候,基本都要在string中载入他们每一个控件所对应的值。
好,那我们就看看在JavaSE上面的具体操作把。大家感受感受。
?
二、国际化的步骤En.properties
内容为:
?
title = englishbutton = my_buttonlogo = bin/qq.gif?
Properties prop ;//设置文件 /** * 构造方法,载入properties */ public international(){ prop = new Properties();// 属性集合对象 FileInputStream fis = null; try { fis = new FileInputStream("src/en.properties"); prop.load(fis);//载入 fis.close();// 关闭流 } catch (Exception e) { e.printStackTrace(); } }?
?
4、装载对应的key??
/** * 显示界面 */ public void showUI(){ //设置大小 this.setSize(400,300); this.setTitle(prop.getProperty("title","中文"));//设置默认值为"中文" this.setLayout(new java.awt.FlowLayout()); javax.swing.JButton jb = new javax.swing.JButton(prop.getProperty("button","我的按钮"));//设置默认值为"我的按钮" this.add(jb); javax.swing.JLabel logo = new javax.swing.JLabel(); logo.setIcon(new ImageIcon(prop.getProperty("logo","bin/360.png"))); this.add(logo); this.setVisible(true); }?
?
?
title = bird languangebutton = bird_buttonlogo = bin/bird.jpg?
?
只需将
fis = new FileInputStream("src/en.properties");?
?
改为:
fis = new FileInputStream("src/bird.properties");?
?
即可
?
?
四、分析?????? 显然,这么以来,逻辑结构和视图结构基本就能分开了。版本翻译,维护,分工相对以前都比较方便了。同一个模式的来学习,现在的主流模式,之后学习web,android什么的,都会相对于比较方便了.
?????? 附件中贴上自己的拙劣代码.
?
?