JFileChooser Java swing コンポーネントでは、すべてのテキスト要素を (翻訳のために) 変更する必要があります。
ファイル名: (JLabel)
ファイルの種類: (JLabel)
キャンセル(JButton)
残念ながら、それはそのための方法ではありません..
それを行う方法はありますか?
ありがとう!
JFileChooser Java swing コンポーネントでは、すべてのテキスト要素を (翻訳のために) 変更する必要があります。
ファイル名: (JLabel)
ファイルの種類: (JLabel)
キャンセル(JButton)
残念ながら、それはそのための方法ではありません..
それを行う方法はありますか?
ありがとう!
Java の Swing コンポーネントは、国際化を完全に理解できます。この記事では、詳細を説明し、それを実現する方法の例を示します。
UIManager.put("FileChooser.fileNameLabelText", "FileName");
UIManager.put("FileChooser.filesOfTypeLabelText", "TypeFiles");
はshowDialog()
、カスタム ダイアログを表示するために使用されます (たとえば、[開く] ダイアログや [保存] ダイアログではありません)。承認ボタンのテキストを指定するパラメータがあります。メソッドでタイトルが設定されていない場合、setDialogTitle()
Windows OS のタイトルとして承認ボタンのテキストを使用することを実装が任意に選択しますが、これはどこにも文書化されておらず、これが機能するとは考えるべきではありません。
カスタム タイトルが必要な場合は、 を使用しますsetDialogTitle()
。カスタムの承認ボタン テキストが必要な場合は、 を使用しますsetApproveButtonText()
。明らかにshowDialog()
、承認ボタンのテキストも受け取ります。その場合、setApproveButtonText()
事前に呼び出す必要はありません。
[開く] ダイアログが必要な場合は、showOpenDialog()
メソッドを使用します。保存ダイアログが必要な場合は、 を使用しshowSaveDialog()
ます。showDialog()
カスタム ダイアログが必要な場合にのみ使用します。
JFileChooser
テキストのみを翻訳する必要がある場合は、内部をハックするのではなく、JFileChooser
( を呼び出して) ロケールを変更することをお勧めします。実際、すべてのテキストはロケールに依存しています。結果として、ロケールを希望するものに変更すると、これらのテキストをより少ない労力で変更できます。JFileChooser#setLocale(Locale)
JFileChooser
JFileChooser
普段JFileChooser@setLocale(Locale)
はリドゥイデルの言う通り。ただし、Mac OSX では無視されます。
Mac OSX で呼び出すデフォルトのロケールを正しく設定するにはUIManager.getLookAndFeelDefaults().setDefaultLocale(Locale);
、これは Java 8 でのみ機能し、Java 7 では機能しないことに注意してください。
ただし、Aquaルック アンド フィールに使用する他のすべてのルック アンド フィールUIManager.getDefaults().setDefaultLocale(Locale);
では機能しないようです。AquaFileChooserUI.java
メソッド内protected void installStrings(JFileChooser paramJFileChooser)
の呼び出しではロケールを使用しないように見えUIManager.getString()
ますが、BasicFileChooserUI などの他の installStrings() メソッドではprotected void installStrings(JFileChooser)
メソッド内でロケールが使用されます。
アクア: UIManager.getString("FileChooser.cancelButtonText");
基本:UIManager.getString("FileChooser.cancelButtonText",l);
fileChooser.setLocale(Locale);
ただし、OSXではまだ無視されます。