Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Insert String into Document with a specified font

I know I can set a font family on an AttributeSet like this:

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

        doc.insertString(
            caretPosition, text, set);

But what I really want to do is set a font:

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

However, there is no StyleConstants.setFont() method.

So how do I set a font on an AttributeSet? (Note that I am free to use an implementation of AttributeSet other than SimpleAttributeSet. I just happened to use that one.)

(Note that my real goal is to insert a string into a Document using a specified font.)

like image 610
Paul Reiners Avatar asked May 10 '11 18:05

Paul Reiners


1 Answers

In my case the

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

does not work. I must change the "Monospace" to "Monospaced":

StyleConstants.setFontFamily(set, "Monospaced");

To find all available family you can use the following code:

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

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

Benedek

like image 153
betontalpfa Avatar answered Sep 22 '22 12:09

betontalpfa