2011-06-10 61 views
4

我正在使用外国操作系统(韩文/日文等)的Java程序 摆动组件如FileChooser的显示是在国外语言中,我需要更改为英文。如何在Java中设置语言?

java.util.Locale.setDefault(java.util.Locale.ENGLISH); 

JFileChooser chooser = new JFileChooser(); 

chooser.setLocale(Locale.ENGLISH); 

而文件选择器仍然显示一切 - 按钮等在这些外国语言。任何想法如何解决它?

我的JFilechooser按钮的确定/取消以日语显示。我正在使用日语Windows。如何将其改为英文?

回答

4

我并不是要指出明显的,但很难说您的期望是基于您发布的代码。仅改变语言环境将不会修改您发送给用户界面的Unicode字符;它也不会从一种语言翻译到另一种语言。更改区域设置是必要的,但还不够。

+0

我的JFilechooser按钮的确定/取消以日语显示。我正在使用日语Windows。 如何将其改为英文? – 2011-06-10 10:33:01

+0

如果应用程序本地化,则更改PC语言环境应该足够。 – Simeon 2011-06-10 10:35:54

+0

@Simeon。更改PC语言环境是一个不好的建议。它会影响操作系统上的所有应用程序。 – Kaj 2011-06-10 10:45:39

5

您可以在启动虚拟机时指定语言。

java -Duser.language=en -Duser.country=US -Duser.variant=US MainClass

+0

对于测试翻译(ResourceBundle),这在Windows上很适用。谢谢! – tresf 2018-02-06 07:35:22

6

你必须通过JComponent.setDefaultLocale()设置语言环境前凑创建JFileChooser对象。

+0

我试过了,仍然不起作用 – 2011-06-10 10:44:10

+1

'JFileChooser chooser = new JFileChooser(); chooser.setDefaultLocale(Locale.ENGLISH); chooser.setLocale(Locale.ENGLISH);' – 2011-06-10 10:44:20

+0

听起来很合理 - 我不希望有一个API允许改变awt或swing组件的语言环境 - 这是一个非常罕见的用例,并且实现起来非常困难;) – 2011-06-10 10:45:47

1

你可以使它与下面的代码一起工作,但JComponent语言环境是一个更好的选择。

JFileChooser chooser = new JFileChooser(); 
chooser.setLocale(Locale.getDefault()); 
chooser.updateUI(); 
+0

我刚刚尝试过这个代码...它的工作原理! :) – Charliemops 2013-07-03 08:15:22