本地化JFileChooser的“所有文件”字符串

5

我正在开发一个Java应用程序,其中包含一个JFileChooser组件,用户可以切换语言。

Locale.setDefault( Locale.ENGLISH );
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog( null );

Locale.setDefault( Locale.CHINA );
JFileChooser.setDefaultLocale( Locale.CHINA );
JFileChooser chinese_chooser = new JFileChooser();
chinese_chooser.showOpenDialog( null );

第二个文件选择器出现时,除了下拉框中的“所有文件”字符串以外,其余都是中文。如果我注释掉代码的第一部分,则文件选择器会正确显示所有已翻译的字符串。这是Java的一个bug还是我需要在其他地方设置语言环境?如何才能使已翻译的文件选择器正确显示?
1个回答

5

我在这里找到了一些可能对你有所帮助的内容。以下是如何更改"All Files"字符串的方法:

UIManager.put("FileChooser.acceptAllFileFilterText","abc4"); 

您只需将此代码放在设置默认语言环境为Locale.CHINA之前即可。虽然这种方法修改不了语言环境,但也许可以为您解决问题。


1
字符串包含在语言环境中,但由于某种原因它没有被更新。这个方法对我有效:UIManager.put("FileChooser.acceptAllFileFilterText",UIManager.get( "FileChooser.acceptAllFileFilterText", Locale.CHINA )); - Kara
1
@Kara 这确实是一个 bug:BasicFileChooserUI 使用的默认 fileFilter 没有返回本地化版本的字符串,请参见 https://dev59.com/1HTYa4cB1Zd3GeqPpwjv#17446693。 - kleopatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接