2015-05-04 59 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),系統字體名稱和註冊字體名稱。後者需要爲應用程序提供字體。 –