3

日本語の言語パックなしで Windows XP m/c の Java swing で JFrame のタイトルに Unicode 文字 (日本語など) を表示するにはどうすればよいですか? タイトルテキストを日本語のユニコード文字に設定し、フォントをMS明朝に設定するだけでは不十分のようです。Swing ラベルに Unicode 文字を表示するために必要なことはこれだけですか?

4

1 に答える 1

4

「日本語パックなし」?

少なくとも言語フォントをダウンロードする必要があるようです...

代替テキスト

アプリケーションを実行するためにクライアント マシンにインストールする必要があるのは、フォントだけです。

AWT とは異なり、Swing ではフォントの使用がはるかに簡単です。
AWT コンポーネント、つまりネイティブ ピアを持つコンポーネントの場合、JRE の設定をカスタマイズする必要があります。つまり、/jre/lib の下の font.properties を変更して、各フォント タイプにインストールしたフォントを含めます。

Swing アプリケーションでは、テキストを設定する前に、Swing コンポーネントのフォントを設定するだけです。

投稿の冒頭にあるリンクには、完全な例が含まれています。
小さな抽出物:

JFrame frame = new JFrame();
String string = "\u30b7\u30f3\u30d7\u30eb\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf";
JLabel label = new JLabel();
label.setFont(new Font("MS Mincho",Font.PLAIN, 12));
label.setText(string);
frame.getContentPane().add(label);
frame.setFont(new Font("MS Mincho",Font.PLAIN, 12));
frame.setTitle(string);

Java J2SE6 (1.6.0) の一般的なドキュメントはこちらで、フォント構成ファイルが含まれています。

Java5 以降では、フォントを作成/使用するためにフォント ファイルをロードできるため、font.properties ファイルはもう必要ありません。

String fontFileName = "yourfont.ttf";
InputStream is = this.getClass().getResourceAsStream(fontFileName);
Font ttfBase = Font.createFont(Font.TRUETYPE_FONT, is);
Font ttfReal = ttfBase.deriveFont(Font.PLAIN, 24);
于 2008-12-04T14:26:56.400 に答える