0

ロケールを設定できるようにスイングアプリをリロードしたいJavaでこれが可能かどうかを知りたいです。私は 5 つ以上の言語が使用されているスイング アプリ プロジェクトに取り組んでおり、各言語のプロパティ ファイルを既に作成しています。ユーザーがメニューから新しい言語を選択するたびに、選択した言語を変更するためにアプリを再起動する必要があります。ロードされた vm 引数と新しい言語を使用して Swing アプリを再起動する方法として、ここで完全に立ち往生しています。

参考までに、私が期待するものと同じ要件を持つWebサイトを次に示します。 http://teravoice.com/

ウェブページが読み込まれた後、jnlp をダウンロードするリンクを選択し、アプリが開いたら、任意の名前でログインしてください。ファイル メニューには、12 言語のサブメニュー「言語」があります。新しい言語をクリックすると、アプリは新しい言語とユーザー データ (つまり、vm オプション) で再起動します。

ありがとうございました。

4

1 に答える 1

7

これは、 ResourceBundle と Localeを使用して 2 つの方法で簡単に実行できます

1)Localeネイティブ OS から取得Locale.getDefault()

ResourceBundle rb = ResourceBundle.getBundle(
       "com.MyPackage.Properties", Locale.getDefault());

frameTitle = (rb.getString("MyFrame.Title")); //myFrame.setTitle("frameTitle");
trayTitle = (rb.getString("MyFrame.TrayTitle"));
exitTitle = (rb.getString("MyFrame.Exit"));
newInfoTitle = (rb.getString("MyFrame.NewInfo"));
sendTitle = (rb.getString("MyFrame.Send"));

2) JComboBoxで選択してランタイムにLocaleを設定し、すべての JComponents またはメソッドを更新する必要があります (個別のメソッド、void またはクラスを作成することをお勧めします)。すべての変更はイベント ディスパッチ スレッドで行う必要があります。Item

3) I18 に関するいくつかの例

4) 私は IDE ユーザーであり、Locale の場合、プロパティ ファイル用の組み込みエディターを使用します。

于 2012-01-18T16:41:14.417 に答える