使用指定的字体将String插入Document

时间:2011-05-10 18:26:47

标签: java swing fonts document

我知道我可以在AttributeSet上设置字体系列,如下所示:

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

        doc.insertString(
            caretPosition, text, set);

但我真正想做的是设置字体:

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

但是,没有StyleConstants.setFont()方法。

那么如何在AttributeSet上设置字体? (请注意,除了SimpleAttributeSet之外,我可以自由地使用AttributeSet的实现。我碰巧使用了那个。)

(请注意,我的真正目标是使用指定的字体将字符串插入Document。)

2 个答案:

答案 0 :(得分:3)

就我而言

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

不起作用。我必须改变" Monospace" to" Monospaced":

StyleConstants.setFontFamily(set, "Monospaced");

要查找所有可用的系列,您可以使用以下代码:

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

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

贝内德克

答案 1 :(得分:2)

您可以使用StyleConstants设置所有字体属性:

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