我知道我可以在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。)
答案 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);