Java GUI中的日语字体

kak*_*shi 7 java internationalization

是否可以用Java编写一个能够正确显示日文字体的GUI,而不管它运行的操作系统的语言设置如何?

我想写一个能够做到这一点的程序,但我不知道如何开始这个.任何建议都将是一个巨大的帮助!

Mic*_*rdt 8

这里的语言设置不是问题.字体是.

Java肯定可以处理日文文本,无论系统设置是什么,如果开发人员没有陷入依赖于平台默认编码的陷阱,使用类似的东西FileReader,或new String(byte[]).

但要实际显示日文文本,您需要一个具有日文字符的字体,并且字体不是Java的一部分.根据操作系统的不同,支持日语的字体可能是默认安装的一部分,或者可能会提示用户根据需要安装它们,或者可能必须手动安装它们.


Chr*_*ris 6

无论操作系统是否安装了字体,Java都可以轻松显示日语,但这仅适用于Swing应用程序.使用控制台窗口的任何内容都需要在操作系统中安装字体.

脚步:

1)从这里下载其中一种truetype字体:http://www.wazu.jp/gallery/Fonts_Japanese2.html

2)使用以下代码允许您的swing客户端使用您的字体:

InputStream fontStream = getClass().getResourceAsStream("/locationoffontonclasspath/myfontname.ttf");
Font japaneseEnabledFont = null;
boolean japaneseDisplayEnabled = false;
try {
    japaneseEnabledFont = Font.createFont(Font.TRUETYPE_FONT, fontStream);
    GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(japaneseEnabledFont);
    japaneseDisplayEnabled = true;
} catch (Exception e) {
    // handle exceptions here
} finally {
    if (fontStream != null) {
        try {fontStream.close();} catch (Exception e1) {}
    }
}

if (japaneseDisplayEnabled) {
   .....
}
Run Code Online (Sandbox Code Playgroud)

此外,如果您希望在源代码中使用日语文字,则必须使用-Dfile.encoding = utf-8进行编译.如果使用IDE进行编译,则可以在以下屏幕上更改设置(右键单击项目并选择属性以获取此窗口):screenshot

有关详细信息,请参见此页面


Boz*_*zho 0

添加-Dfile.encoding=utf-8到启动应用程序的命令行脚本。