Загрузка пользовательских шрифтов во время выполнения для использования с JTextPane - PullRequest
2 голосов
/ 18 октября 2011

Спасибо за ваше время.Мой вопрос касается отображения разных шрифтов в пределах одного JTextPane.Мой клиент хочет просмотреть слово на двух разных языках в одном поле.Они явно указали, что хотят, чтобы разные языки (а именно амхарский, арабский, коптский и иврит) были показаны с разными шрифтами.Это, очевидно, нестандартные шрифты, и я не могу полагаться на то, что пользователь установил необходимые шрифты в своей ОС.

Из моего исследования я обнаружил, что могу загрузить файл шрифта во время выполнения и установитьСоответственно, шрифт JTextPane, что хорошо, если я просто хочу использовать один шрифт, а не два.Я также читал о добавлении шрифтов в каталог шрифтов операционной системы или в каталог шрифтов JRE, обозначенный здесь здесь .

Я надеялся, однако, что можно было бы использовать шрифты безизменение ОС пользователя.Мне не повезло?

Еще раз спасибо за ваше время, и я с нетерпением жду любых ответов с яркими идеями!

1 Ответ

4 голосов
/ 18 октября 2011

Из моего исследования я обнаружил, что могу загрузить файл шрифта во время выполнения и соответственно установить шрифт JTextPane, что хорошо, если я просто хотел использовать один шрифт, а не два.

JTextPane может использовать несколько шрифтов.

Ознакомьтесь с разделом из учебника по Swing по Функции текстовых компонентов , чтобы ознакомиться с примером игры с атрибутами текста в текстовой панели.

Edit:

Однако для использования нескольких шрифтов единственный способ, который я разработал для установки шрифта, - это создать MutableAttributeSet и установить для атрибута «FontFamily» (строку) желаемое имя шрифта, а затем присвоить атрибуту набор для текст с использованием StyledDocument.setCharacterAttributes

Чтение API для метода createFont (), которое вы должны использовать:

GraphicsEnvironment.registerFont(Font)
...