Вставить строку в документ с указанным шрифтом - PullRequest
5 голосов
/ 10 мая 2011

Я знаю, что могу установить семейство шрифтов для AttributeSet следующим образом:

        SimpleAttributeSet set = new SimpleAttributeSet();
        StyleConstants.setFontFamily(set, "Monospace");

        doc.insertString(
            caretPosition, text, set);

Но я действительно хочу установить шрифт:

        StyleConstants.setFont(set, "Courier New");

Однако метод StyleConstants.setFont () отсутствует.

Так как мне установить шрифт на AttributeSet? (Обратите внимание, что я могу свободно использовать реализацию AttributeSet, отличную от SimpleAttributeSet. Я просто случайно использовал эту.)

(Обратите внимание, что моя настоящая цель - вставить строку в документ, используя указанный шрифт.)

Ответы [ 2 ]

3 голосов
/ 10 августа 2015

В моем случае

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setFontFamily(set, "Monospace");

не работает.Я должен изменить «Monospace» на «Monospaced»:

StyleConstants.setFontFamily(set, "Monospaced");

Чтобы найти все доступные семейства, вы можете использовать следующий код:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fnt = ge.getAvailableFontFamilyNames();

for (String f : fnt){
            System.out.println(f);
}

Benedek

2 голосов
/ 26 мая 2011

Вы можете установить все атрибуты шрифта, используя StyleConstants:

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setFontFamily(set, "Monospace");
StyleConstants.setFontSize(set, 22);
StyleConstants.setBold(set, true);
StyleConstants.setItalic(set, true);
...