свинг создать шрифт - PullRequest
5 голосов
/ 30 ноября 2011

У меня есть несколько пользовательских компонентов с переопределенным методом paintComponent(Graphics g). В некоторых компонентах используется drawString() метод из Graphics g объекта. Я хочу определить пользовательские шрифты для таких нарисованных строк.

У меня есть * .ttf файлы с определениями истинных шрифтов. У меня есть файл CSS с классами стилей, определяя шрифты, такие как:

.rosTexLogoTitle {
   -fx-font: bold 20pt 'Tahoma Bold';
   -fx-text-fill: #246db6;
   -fx-font-weight: heavybold;
   -fx-padding: 0 10 0 0

Я хочу определить все свойства из css в моем java-классе или, возможно, есть способ использовать стили непосредственно из css-файлов (не обязательно).

Я пытался создать шрифт с помощью конструктора с параметром Map:

public Font(Map<? extends Attribute, ?> attributes) {
}

Но я не добился успеха. Я могу создать собственный шрифт с помощью Font.createFont(style, path), а затем получить его для установки размера. Цвет можно установить в Graphics.setColor(). Но я не могу установить «Tahoma Bold».

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Вы не можете установить вес шрифта или семью; они просто используются для выбора правильного .ttf файла.

Таким образом, решение состоит в том, чтобы использовать правильный файл .ttf для начала. Например, семейство шрифтов Arial состоит из четырех файлов:

arialbd.ttf - Weight "Bold"
arialbi.ttf - Weight "Bold", Slant "Italic"
ariali.ttf  - Slant "Italic"
arial.ttf   - Plain version
1 голос
/ 30 ноября 2011

у вас есть файл .ttf?createFont (стиль, файл) возвращает новый шрифт, тогда вы можете установить Color

вы можете использовать sun.awt.Win32GraphicsEnvironment.getAvailableFontFamilyNames () получить все шрифты ОС

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...