2015-05-04 35 views
1

能在java和windows平台上使用支持所有语言的字体JTextArea吗?我在谷歌搜索,但没有找到任何帮助。在java中所有语言支持的字体windows上的JTextArea

textArea = new JTextArea(); 
textArea.setFont(new Font("Arial", Font.PLAIN, 12)); 
+1

这真的不清楚你在问什么。请尝试解释你想要达到的目标以及卡住的位置。 – germi

+0

@germi我认为他想让输入的不仅仅是英文,还有其他语言的Windows平台。 – Blip

+0

@Rafiq你有什么特定的语言? – Blip

回答

0

为此,您需要一个Unicode。对于所有语言,这种字体的大小可能在20 MB左右。

您可以在您的应用程序中提供字体。所需要的是注册字体(i.a.与Windows)。

//Font font = Font.createFont(Font.TRUETYPE_FONT, new File("code2000.ttf")) 
Font font = Font.createFont(Font.TRUETYPE_FONT, 
    getResourceAsStream("/code2000.ttf")) 
GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
genv.registerFont(font); 

有Arial Unicode MS,但这不是免费的。但是,有足够的免费完整的Unicode字体。

+1

我敢肯定,注册字体并非绝对必要,除非其他代码打算按名称引用它(例如在Font构造函数中,在Font.getFont方法,TextAttribute.FAMILY,StyleConstants.Family或在启用了HTML的Swing组件的CSS中)。对于单个JTextArea,新的Font对象可以传递给textArea.setFont。 – VGR

+0

@VGR是的,名称查找适用于逻辑字体名称(旧java),系统字体名称和注册字体名称。后者需要为应用程序提供字体。 –