1
現在、私はJava Desktop Applicationをビルドしています。ここで、ユーザーはJFileChooserを使用して言語を設定するためにfile.propertiesをロードできます。しかし、それは私に例外をスローします:基本名language.propertiesのロケールpt_BRのバンドルを見つけることができません。JFileChooserからfile.propertiesを取得し、ResourceBundleで使用する
私のファイル名はlanguage.propertiesですので、何が問題なのか分かりません。例えばlanguage_en.propertiesではなく、デフォルトのlanguage.propertiesファイルをロードしたいとします。ここに私のコードです:
JFileChooser fileChooser = new JFileChooser();
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
URL[] urls = null;
try {
urls= new URL[]
{
selectedFile.toURI().toURL()
};
} catch (MalformedURLException e){// TODO Auto-generated catch block
e.printStackTrace();
}
String fileName = selectedFile.getName();
int pos = fileName.lastIndexOf(".");
if (pos > 0) {
fileName = fileName.substring(0, pos);
}
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle bundle = ResourceBundle.getBundle(fileName,Locale.getDefault(),loader);
}
私は助けていただければ幸いです。
「ベース名** language.properties **のバンドルを見つけることができません」と具体的に言えば、ここに投稿したコードスニペットが正しくない: 'getBundle(" language.properties ")'スニペットと同じ 'getBundle(" language ")'を呼び出す必要があります。 –
また、選択者がファイルまたはフォルダを選択するかどうかは不明です。また、選択したファイルの名前が "language.properties"でない場合はどうなりますか? –
私は自分の質問を更新しました。 –