java.util.ResourceBuble
ResourceBundle此类主要用于读取资源文件,如字符串、图片等。类似于VC中的资源文件
当然我们也可以用它来实现应用软件的国际化和本地化。
//:国际化和本地化.txt1、
/**
* File name: i18nDemoModify.java
* Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
* Email: [email protected]
* Description: Shows a Dialog with a "OK" button and "File"/"Exit" menu.
* This program made some modifications to fit the requestion of i18n
*/
import javax.swing.*;
import java.awt.*;
import java.util.*; public class i18nDemoModify {
public static void main(String args[]) throws Exception{
ResourceBundle res;
if (args.length<1) {
//use current locale at machine to get the resource bundle.
//如果没有指定Locale,那么在生成ResourceBundle使用的Locale是当前机器上缺省的区域和语言
//这样,如果机子是Windows2000中文,则自动选择中文资源
//资源文件是以类的方式提供的。以Resmy开头,Resmy可以换成其他的字符串
res = ResourceBundle.getBundle("Resmy");
}else {
res = ResourceBundle.getBundle("Resmy",new Locale(args[0], args[1]));
} JDialog dialog=new JDialog();
JButton btOK=new JButton();
JMenuBar menuBar=new JMenuBar();
JMenu menuFile=new JMenu();
JMenuItem menuExit=new JMenuItem();
//如果不指定字体,将使用系统当前的字体
Font font = new Font(res.getString("FontName"),Font.PLAIN,12); btOK.setText(res.getString("OKText"));
menuFile.setText(res.getString("FileMenuText"));
menuExit.setText(res.getString("FileExitMenuText"));
dialog.setTitle(res.getString("DialogTitle"));
//如果不指定字体,将使用系统当前的字体
btOK.setFont(font);
menuFile.setFont(font);
menuExit.setFont(font); menuBar.add(menuFile);
menuFile.add(menuExit);
dialog.getContentPane().setLayout(new FlowLayout());
dialog.getContentPane().add(btOK);
dialog.getContentPane().add(menuBar);
dialog.setSize(200,100);
dialog.setModal(true);
dialog.show();
System.exit(0);
}
}
2、英文资源
/**
* File name: Resmy_en_US.java
* Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
* Email: [email protected]
* Description: Resource file for i18nDemoModify.java
*/
import java.util.*;
public class Resmy_en_US extends java.util.ListResourceBundle {
static final Object[][] contents = new String[][]{
{ "OKText", "OK" },
{ "FontName", "Dialoginput" },
{ "FileMenuText", "File"},
{ "FileExitMenuText", "Exit"},
{ "DialogTitle", "Demo Dialog" }};
public Object[][] getContents() {
return contents;
}
}
3、中文资源
/**
* File name: Resmy_zh_CN.java
* Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
* Email: [email protected]
* Description: Resource file for i18nDemo.java
*/
import java.util.*;
public class Resmy_zh_CN extends java.util.ListResourceBundle {
static final Object[][] contents = new String[][]{
{ "OKText", "确定" },
{ "FontName", "华文彩云" },
{ "FileMenuText", "文件"},
{ "FileExitMenuText", "退出"},
{ "DialogTitle", "演示对话框" }};
public Object[][] getContents() {
return contents;
}
}4、测试执行 javac i18nDemoModify.java
javac Resmy_en_US.java
javac Resmy_zh_CN.java
java i18nDemoModify
rem java i18nDemoModify zh CN
rem java i18nDemoModify en US
ResourceBundle此类主要用于读取资源文件,如字符串、图片等。类似于VC中的资源文件
当然我们也可以用它来实现应用软件的国际化和本地化。
//:国际化和本地化.txt1、
/**
* File name: i18nDemoModify.java
* Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
* Email: [email protected]
* Description: Shows a Dialog with a "OK" button and "File"/"Exit" menu.
* This program made some modifications to fit the requestion of i18n
*/
import javax.swing.*;
import java.awt.*;
import java.util.*; public class i18nDemoModify {
public static void main(String args[]) throws Exception{
ResourceBundle res;
if (args.length<1) {
//use current locale at machine to get the resource bundle.
//如果没有指定Locale,那么在生成ResourceBundle使用的Locale是当前机器上缺省的区域和语言
//这样,如果机子是Windows2000中文,则自动选择中文资源
//资源文件是以类的方式提供的。以Resmy开头,Resmy可以换成其他的字符串
res = ResourceBundle.getBundle("Resmy");
}else {
res = ResourceBundle.getBundle("Resmy",new Locale(args[0], args[1]));
} JDialog dialog=new JDialog();
JButton btOK=new JButton();
JMenuBar menuBar=new JMenuBar();
JMenu menuFile=new JMenu();
JMenuItem menuExit=new JMenuItem();
//如果不指定字体,将使用系统当前的字体
Font font = new Font(res.getString("FontName"),Font.PLAIN,12); btOK.setText(res.getString("OKText"));
menuFile.setText(res.getString("FileMenuText"));
menuExit.setText(res.getString("FileExitMenuText"));
dialog.setTitle(res.getString("DialogTitle"));
//如果不指定字体,将使用系统当前的字体
btOK.setFont(font);
menuFile.setFont(font);
menuExit.setFont(font); menuBar.add(menuFile);
menuFile.add(menuExit);
dialog.getContentPane().setLayout(new FlowLayout());
dialog.getContentPane().add(btOK);
dialog.getContentPane().add(menuBar);
dialog.setSize(200,100);
dialog.setModal(true);
dialog.show();
System.exit(0);
}
}
2、英文资源
/**
* File name: Resmy_en_US.java
* Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
* Email: [email protected]
* Description: Resource file for i18nDemoModify.java
*/
import java.util.*;
public class Resmy_en_US extends java.util.ListResourceBundle {
static final Object[][] contents = new String[][]{
{ "OKText", "OK" },
{ "FontName", "Dialoginput" },
{ "FileMenuText", "File"},
{ "FileExitMenuText", "Exit"},
{ "DialogTitle", "Demo Dialog" }};
public Object[][] getContents() {
return contents;
}
}
3、中文资源
/**
* File name: Resmy_zh_CN.java
* Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
* Email: [email protected]
* Description: Resource file for i18nDemo.java
*/
import java.util.*;
public class Resmy_zh_CN extends java.util.ListResourceBundle {
static final Object[][] contents = new String[][]{
{ "OKText", "确定" },
{ "FontName", "华文彩云" },
{ "FileMenuText", "文件"},
{ "FileExitMenuText", "退出"},
{ "DialogTitle", "演示对话框" }};
public Object[][] getContents() {
return contents;
}
}4、测试执行 javac i18nDemoModify.java
javac Resmy_en_US.java
javac Resmy_zh_CN.java
java i18nDemoModify
rem java i18nDemoModify zh CN
rem java i18nDemoModify en US
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货