2015-05-04 2 views
1

Можно ли использовать шрифт, поддерживающий все языки, в JTextArea на платформе java и windows? Я искал в google, но не нашел никакой помощи.Все языковые шрифты поддержки в java JTextArea на окнах

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

Это действительно непонятно, о чем вы просите. Попробуйте объяснить, чего именно вы хотите достичь, и где вы застряли. – germi

+0

@germi Я думаю, он хочет разрешить ввод не только на английском, но и на других языках в платформе Windows. – Blip

+0

@ Rafiq есть ли у вас какой-либо конкретный язык, который вы имеете в виду? – Blip

ответ

0

Для этого вам нужен Юникод. Для всех языков такой шрифт может быть порядка 20 МБ.

Вы можете указать шрифт в своем приложении. Необходимо зарегистрировать шрифт (например, с 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.getFont, TextAttribute.FAMILY, StyleConstants.Family или в CSS в компоненте Swing с поддержкой HTML). Для одного JTextArea новый объект Font можно просто передать в textArea.setFont. – VGR

+0

@VGR да, поиск имени предназначен для логических имен шрифтов (старый java), имен системных шрифтов и зарегистрированных имен шрифтов. Последнее необходимо для примененных шрифтов. –

Смежные вопросы