我正在使用Swing,我需要组件能够同时显示多种语言(在一个组件内)。但是,英文字符以外的字符显示为正方形。
组件只是JTextPane
,JEditorPane
,JTextField
,JTextArea
以及所有默认内容。
我必须做些什么来实现多语言支持的目标?
答案 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);