组件中的多语言

时间:2014-07-14 09:27:45

标签: java swing fonts multilingual

我正在使用Swing,我需要组件能够同时显示多种语言(在一个组件内)。但是,英文字符以外的字符显示为正方形。

组件只是JTextPaneJEditorPaneJTextFieldJTextArea以及所有默认内容。

我必须做些什么来实现多语言支持的目标?

2 个答案:

答案 0 :(得分:1)

在大多数平台上,每个组件的UI委托指定的默认逻辑 font family具有支持的区域设置所需的字形。如果您使用setFont()使用特定物理字体覆盖这些默认值,则可以使用deriveFont()获得所需结果,如examples中所述。如果必须使用特定的物理字体,则必须验证是否存在所需的字形。 FontShower可能是一个有用的附件。

答案 1 :(得分:1)

使用完整的Unicode font。它们很大。然后setFont(...)就可以了。

如果您想使用应用loadFont打包字体,registerFont即可。

    Font font = Font.createFont(Font.TRUETYPE_FONT,
        getClass().getResourceAsStream("/..."));
    GraphicsEnvironment ge =
        GraphicsEnvironment.getLocalGraphicsEnvironment();
    ge.registerFont(font);