3

[編集]これはJava1.5を搭載したOSXで発生しました!(ただし、Windowsでも発生する可能性があります!)

私のJavaSwingプログラムの日本人ユーザーは、JTextFieldsに日本語の記号を書くことができないようです。実際、彼らはそれらを書くことはできますが、それらを見ることはできません。フォントがこれらの記号をサポートしていないことを何らかの形で示しているブロックのみが表示されます。

さまざまな理由で自分のフォントを設定しました( "Lucida Sans"、Font.PLAIN、12)-変更したくありません。私の質問は次のとおりです。

  1. このフォントを設定しなくても、JTextFieldsは日本語の記号を表示しますか?

  2. どのロケールが私のフォントで完全にサポートされているかを検出し、それらの場合にのみ設定し、Locale.Japanのような他のすべての場合には標準のJavaフォントを残すことができますか?

  3. 他に何か提案はありますか?

ご協力ありがとうございました!

4

2 に答える 2

3

このフォントを設定しなくても、JTextFields は日本語の記号を表示しますか?

ほとんどの場合、JRE がデフォルトを選択するためです。

私のフォントで完全にサポートされているロケールを検出し、それらの場合にのみ設定し、Locale.Japan などの他のすべての場合には標準の Java フォントを残すことはできますか?

はい、理論的には、Font のcanDisplay(char)メソッドを使用して、このフォントがロケール固有の文字を表示できるかどうかをテストする方が簡単ですが。そうでない場合は、デフォルトに切り替えることができます。

他に提案はありますか?

これは、このトピックに関する役立つリンクです

あなたの製品へのリンクはありますか?

于 2009-05-21T22:48:40.173 に答える
2

まさにこの理由で、私の国際化されたアプリケーションは、ロケールに応じてフォントを設定します。質問に答えるには:

  1. これはおそらく、使用されている Windows のバージョンによって異なります。これは日本語フォントがインストールされた米国版ですか、それとも日本で販売されたバージョンですか? あなたの質問に対する正確な答えはわかりませんが、「場合による」という答えになると思います。

  2. これを行う標準的な方法はわかりません。この種のことを調査するための素晴らしいユーティリティを見つけました: BabelMap。これにより、特定のフォントでサポートされている文字が正確にわかります。

  3. その他の提案: 少なくとも一部のロケールでは、ロケールに応じてフォントを設定します。

于 2009-05-21T22:26:16.490 に答える