2013-06-11 6 views
5

私はJFileChooserを使用してJavaアプリケーションを開発しており、ユーザーは言語を切り替えることができます。JFileChooser "All Files"文字列のローカライズ

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); 

表示される2番目のファイルチューザは、ドロップダウンボックスの[すべてのファイル]文字列を除いて中国語です。私がコードの最初のセクションをコメントアウトすると、すべての文字列が翻訳されたファイルチューザーが正しく表示されます。

これはJavaのバグですか、それとも別の場所に設定する必要がありますか?

翻訳されたファイルチューザが正しく表示されるようにするにはどうすればよいですか?あなたはLocale.CHINAにデフォルトのロケールを設定する前に、ちょうどこの権利を置く

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

答えて

3

I found something that might help you here.は、ここでは、「すべてのファイル」の文字列を変更する方法を説明します。ロケールで変更されていないのは残念ですが、おそらくそれがあなたの周りにあなたのために働くために必要な作業を与えるでしょう。

+1

文字列はロケールに含まれていますが、何らかの理由で更新されていません。これは私のために働いた: 'UIManager.put(" FileChooser.acceptAllFileFilterText "、UIManager.get(" FileChooser.acceptAllFileFilterText "、Locale.CHINA)); ' – Kara

+3

おそらく*バグです。 –

+1

@Karaバグです。実際には、BasicFileChooserUIで使用されるデフォルトのfileFilterは、ローカライズされたバージョンの文字列を返しません。http://stackoverflow.com/a/17446693/203657を参照してください。 – kleopatra

関連する問題