3

如何在没有日语语言包的 Windows XP m/c 中的 java swing 中的 JFrame 标题中显示 unicode 字符(例如日语)?看起来将标题文本设置为日文 unicode 字符而将字体设置为 MS Mincho 是不够的。虽然这就是在 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 回答