Установка символов Юникода в кадрах Java - PullRequest
3 голосов
/ 04 декабря 2008

Как отобразить символы юникода (например, японский) в названии JFrame в java swing в Windows XP m / c без пакета для японского языка? Похоже, что установка текста заголовка для японских символов Юникода и шрифта для MS Mincho не достаточно. Хотя это все, что вам нужно для отображения символов юникода в метках Swing?

1 Ответ

4 голосов
/ 04 декабря 2008

"без японского языкового пакета"?

Кажется, вам нужно как минимум скачать шрифт языка ...

alt text

Шрифт - это единственное, что необходимо установить на клиентском компьютере для запуска приложения.

Использование шрифта в Swing намного проще, чем в AWT.
Для компонентов AWT, т. Е. С нативным узлом, вам необходимо настроить параметры JRE, т.е. изменить font.properties в / jre / lib, чтобы включить шрифт, установленный вами для каждого типа шрифта.

В вашем приложении Swing вам просто нужно установить шрифт компонента Swing перед настройкой его текста.

Ссылка в начале поста содержит полный пример.
Малый экстракт:

JFrame frame = new JFrame();
String string = "\u30b7\u30f3\u30d7\u30eb\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf";
JLabel label = new JLabel();
label.setFont(new Font("MS Mincho",Font.PLAIN, 12));
label.setText(string);
frame.getContentPane().add(label);
frame.setFont(new Font("MS Mincho",Font.PLAIN, 12));
frame.setTitle(string);

Общая документация для java J2SE6 (1.6.0): здесь , включая Файлы конфигурации шрифта

Начиная с Java5 и более, вам больше не нужен файл font.properties, так как вы можете загрузить файл шрифта для создания / использования шрифта.

String fontFileName = "yourfont.ttf";
InputStream is = this.getClass().getResourceAsStream(fontFileName);
Font ttfBase = Font.createFont(Font.TRUETYPE_FONT, is);
Font ttfReal = ttfBase.deriveFont(Font.PLAIN, 24);
...