2009-05-21 16 views
3

[編集] Java 1.5のOSXでこの問題が発生しました! (ただし、Windowsでも発生することがあります)Javaロケールフォントの質問..?

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

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

  1. JTextFields show japanese私を除いた記号はこのフォントを設定しますか?

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

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

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

答えて

2

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

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

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

  3. その他の推奨事項:ロケールに応じてフォントを設定してください。少なくとも選択したロケールについてはフォントを設定してください。

+0

Java 1.5のOSXでこの問題が発生しました! (ただし、Windowsでも発生する可能性があります)。 –

+0

BabelMapで - 日本語のシンボルに対応するUnicodeブロック名は何ですか? –

+0

カタカナはおそらくあなたが望むUnicodeブロックです。 – Eddie

3

のJTextFieldは私がこのフォントを設定せずに日本のシンボルを表示しますか?

JREがデフォルトを選択する可能性が高いためです。

私は、ロケールのは、完全に私のフォントでサポートされているかを検出でき、ケースのみでそれを設定したがLocale.Japanのような他のすべてのケースのための標準的なJavaフォントを残しますか?理論的には

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

他に提案がありますか?

Here's a link on this topic that may help

はあなたの製品のリンクを持っていますか?

+0

申し訳ありませんが、リンクがありません。 –