java u53c2,java 例子完成多国措辞静态切换[精华]

这是一个关于使用Java Swing创建一个具有多语言支持的应用程序的示例。程序通过JRadioButtonMenuItem选择不同语言(英语、法语、韩语、泰语和中文),并从对应的资源文件中加载文本。当用户选择语言时,更新界面的标签和按钮文本。遇到的问题包括配置文件编码和泰文的locale处理。示例还提供了获取Java支持的所有语言和国家的代码示例。
摘要由CSDN通过智能技术生成

上来就给源码,这就是我做事风格

packagelangue;

importjavax.swing.jradiobuttonmenuitem;

importjavax.swing.swingutilities;

publicclassnewjframeextendsjavax.swing.jframe{

privatestaticjava.util.resourcebundleresources=

java.util.resourcebundle.getbundle("langue/softwareresources");

publicnewjframe(){

initponents();

}

privatevoidinitponents(){

jlabel1=newjavax.swing.jlabel();

jtextfield1=newjavax.swing.jtextfield();

jlabel2=newjavax.swing.jlabel();

jtextfield2=newjavax.swing.jtextfield();

jbutton1=newjavax.swing.jbutton();

jbutton2=newjavax.swing.jbutton();

jmenubar1=newjavax.swing.jmenubar();

jmenu1=newjavax.swing.jmenu();

jradiobuttonmenuitem1=newjradiobuttonmenuitem();

jradiobuttonmenuitem2=newjradiobuttonmenuitem();

jradiobuttonmenuitem3=newjradiobuttonmenuitem();

jradiobuttonmenuitem4=newjradiobuttonmenuitem();

jradiobuttonmenuitem5=newjradiobuttonmenuitem();

setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);

jmenu1.settext("file");

//英语

jradiobuttonmenuitem1.settext("english");

jradiobuttonmenuitem1.addactionlistener(new

java.awt.event.actionlistener(){

publicvoidactionperformed(java.awt.event.actioneventevt){

jradiobuttonmenuitem2.setselected(false);

jradiobuttonmenuitem3.setselected(false);

jradiobuttonmenuitem4.setselected(false);

jradiobuttonmenuitem5.setselected(false);

resources=java.util.resourcebundle.getbundle("langue/softwareresources",java.util.locale.english);

updatelabel();

}

});

jmenu1.add(jradiobuttonmenuitem1);

//法语

jradiobuttonmenuitem3.settext("france");

jradiobuttonmenuitem3.addactionlistener(new

java.awt.event.actionlistener(){

publicvoidactionperformed(java.awt.event.actioneventevt){

jradiobuttonmenuitem2.setselected(false);

jradiobuttonmenuitem1.setselected(false);

jradiobuttonmenuitem4.setselected(false);

jradiobuttonmenuitem5.setselected(false);

resources=java.util.resourcebundle.getbundle("langue/softwareresources",java.util.locale.france);

updatelabel();

}

});

jmenu1.add(jradiobuttonmenuitem3);

//韩语

jradiobuttonmenuitem4.settext("korea");

jradiobuttonmenuitem4.addactionlistener(new

java.awt.event.actionlistener(){

publicvoidactionperformed(java.awt.event.actioneventevt){

jradiobuttonmenuitem2.setselected(false);

jradiobuttonmenuitem1.setselected(false);

jradiobuttonmenuitem3.setselected(false);

jradiobuttonmenuitem5.setselected(false);

=java.util.resourcebundle.("langue/softwareresources",javresourcesgetbundle

a.util.locale.korea);

updatelabel();

}

});

jmenu1.add(jradiobuttonmenuitem4);

//泰文

jradiobuttonmenuitem5.settext("thai");

jradiobuttonmenuitem5.addactionlistener(new

java.awt.event.actionlistener(){

publicvoidactionperformed(java.awt.event.actioneventevt){

jradiobuttonmenuitem2.setselected(false);

jradiobuttonmenuitem1.setselected(false);

jradiobuttonmenuitem3.setselected(false);

jradiobuttonmenuitem4.setselected(false);

resources=java.util.resourcebundle.getbundle("langue/softwareresources_th");

updatelabel();

}

});

jmenu1.add(jradiobuttonmenuitem5);

//中文

jradiobuttonmenuitem2.setselected(true);

jradiobuttonmenuitem2.settext("chinese");

jradiobuttonmenuitem2.addactionlistener(new

java.awt.event.actionlistener(){

publicvoidactionperformed(java.awt.event.actioneventevt){

jradiobuttonmenuitem1.setselected(false);

jradiobuttonmenuitem3.setselected(false);

jradiobuttonmenuitem4.setselected(false);

jradiobuttonmenuitem5.setselected(false);

resources=java.util.resourcebundle.getbundle("langue/softwareresources",java.util.locale.china);

updatelabel();

}

});

jmenu1.add(jradiobuttonmenuitem2);

jmenubar1.add(jmenu1);

setjmenubar(jmenubar1);

updatelabel();

setlayout();

this.setlocationrelativeto(null);

pack();

}

privatevoidsetlayout()

{

javax.swing.grouplayoutlayout=new

javax.swing.grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(

layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addcontainergap()

.addgroup(layout.createparallelgroup(javax.swing.grouplayou

t.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addgroup(layout.createparallelgroup(javax.swing.gr

ouplayout.alignment.leading,false)

.addgroup(layout.createsequentialgroup()

.addponent(jlabel1)

.addgap(18,18,18)

.addponent(jtextfield1,

javax.swing.grouplayout.default_size,159,short.max_value))

.addgroup(layout.createsequentialgroup()

.addponent(jlabel2)

.addgap(18,18,18)

.addponent(jtextfield2)))

.addcontainergap(javax.swing.grouplayout.default_si,short.max_value))ze

.addgroup(layout.createsequentialgroup()

.addgap(13,13,13)

.addponent(jbutton1)

.addpreferredgap(javax.swing.layoutstyleponentp

lacement.related,34,short.max_value)

.addponent(jbutton2)

.addgap(56,56,56))))

);

layout.setverticalgroup(

layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addcontainergap()

.addgroup(layout.createparallelgroup(javax.swing.grouplayou

t.alignment.baseline)

.addponent(jlabel1)

.addponent(jtextfield1,

javax.swing.grouplayout.preferred_size,javax.swing.grouplayout.default_size,javax.swing.grouplayout.preferred_size))

.addpreferredgap(javax.swing.layoutstyleponentplacement

.unrelated)

.addgroup(layout.createparallelgroup(javax.swing.grouplayou

t.alignment.baseline)

.addponent(jlabel2)

.addponent(jtextfield2,

javax.swing.grouplayout.preferred_size,javax.swing.grouplayout.default_size,javax.swing.grouplayout.preferred_size))

.addgap(18,18,18)

.addgroup(layout.createparallelgroup(javax.swing.grouplayou

t.alignment.baseline)

.addponent(jbutton1)

.addponent(jbutton2))

.addcontainergap(19,short.max_value))

);

}

privatevoidupdatelabel(){

jlabel1.settext(resources.getstring("label_text_name"));

jlabel2.settext(resources.getstring("label_text_class"));

jbutton1.settext(resources.getstring("button_label_sure"));

jbutton2.settext(resources.getstring("button_label_cancel"));

jmenu1.settext(resources.getstring("jmenu_text_file"));

}

publicstaticvoidmain(stringargs[]){

swingutilities.(newrunnable(){invokelater

publicvoidrun(){

newnewjframe().setvisible(true);

}

});

}

privatejavax.swing.jbuttonjbutton1;

privatejavax.swing.jbuttonjbutton2;

privatejavax.swing.jlabeljlabel1;

privatejavax.swing.jlabeljlabel2;

privatejavax.swing.jmenujmenu1;

privatejavax.swing.jmenujmenu2;

privatejavax.swing.jmenubarjmenubar1;

privatejavax.swing.jradiobuttonmenuitemjradiobuttonmenuitem1;

privatejavax.swing.jradiobuttonmenuitemjradiobuttonmenuitem2;

privatejavax.swing.jradiobuttonmenuitemjradiobuttonmenuitem3;

privatejavax.swing.jradiobuttonmenuitemjradiobuttonmenuitem4;

privatejavax.swing.jradiobuttonmenuitemjradiobuttonmenuitem5;

privatejavax.swing.jtextfieldjtextfield1;

privatejavax.swing.jtextfieldjtextfield2;

}

附上几个配置文件

softwareresources_en.properties英文

button_label_sure=sure

button_label_cancel=cancel

label_text_name=name

label_text_class=class

jmenu_text_file=file

softwareresources_zh_.properties中文

button_label_sure=\u786e\u5b9a

button_label_cancel=\u53d6\u6d88

label_text_name=\u59d3\u540d

label_text_class=\u73ed\u7ea7

jmenu_text_file=\u6587\u4ef6

softwareresources_ko_kr.properties韩文

button_label_sure=\ubb3c\ub860\uc774\uc8e0button_label_cancel=\ucde8\uc18c

label_text_name=\uc774\ub984

label_text_class=\ud074\ub798\uc2a4

jmenu_text_file=\ud30c\uc77c

剩下两个配置文件你们用google翻译去

softwareresources_fr_fr.properties

softwareresources_th.properties

给大家分享下我学习中遇到的问题

1,配置文件不显示英文外的其它文字

这是编码问题,没多大关系。如果你实在受不了这种方式可以去下载*

件,具体可以google......

2,为什么泰文读配置文件这样写

resources=java.util.resourcebundle.getbundle("langue/softwareresour

ces_th")而其它像韩文这样写

resources=java.util.resourcebundle.getbundle("langue/softwareresour

ces",java.util.locale.korea);

我为什么这样写呢,就是因为locale仅点的出来几个国家/地区,没有泰语

按照规范应该写成韩文这样的。locale.korea其实打印出来是ko_kr

所以它的配置文件就是softwareresources_ko_kr.properties,

如果懒点就直接写成

resources=java.util.resourcebundle.getbundle("langue/softwareresour

ces_ko_kr");不过对于编码还是要尽量规范点

给你们java支持的语言例子:

packagelangue;

importjava.util.locale;

publicclasssupportlangu{

publicstaticvoidmain(string[]args){

//返回java所支持的全部国家和语言的数组

locale[]localelist=locale.getavailablelocales();

//遍历数组的每个元素,依次获取所支持的国家和语言

for(inti=0;i

{

//打印出所支持的国家和语言

system.out.println(i+""+localelist[i].getdisplaycountry()+"="+

localelist[i].getcountry()+""+localelist[i].getdisplaylanguage()

+"="+localelist[i].getlanguage());

}

}

}

3,我这例子类和配置文件是放在同一个目录下,不放一起也可以,改下路径

大家别纠结那语言是不是对应的文字,我也只认识中文和英文。

附上界面结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值