> I'm displaying XML in a JTextPane. I was wondering if there was a way
> to display the XML formatted with color/text/etc. (Basically, I'm
> wondering if I can associated an XML style.) I've searched a bit, but
> I haven't been able to get anything to work.
>
> Thanks
> > I'm displaying XML in a JTextPane. I was wondering if there was a way
> > to display the XML formatted with color/text/etc. (Basically, I'm
[quoted text clipped - 5 lines]
> I don't know any way to do it automagically. Are you ok with doing it
> manually via SimpleAttrributeSet and such like?
Well, of course, automagic would be great, but I realize that may not
exist. I'll look into SimpleAttributeSet.
Mark Space - 07 Apr 2008 23:38 GMT
>>> I'm displaying XML in a JTextPane. I was wondering if there was a way
>>> to display the XML formatted with color/text/etc. (Basically, I'm
[quoted text clipped - 6 lines]
> Well, of course, automagic would be great, but I realize that may not
> exist. I'll look into SimpleAttributeSet.
Ah, I assume you knew about SimpleAttributeSet and were hoping for
something easier.
You can use the SimpleAttributesSet for the Document class to style text
for a JTextPane. Use JTextPane.getDocument to append/change the
document to add text to an existing JTextPane.
Unlike JEditorPane you should not need a URL for this or use setPage().
There's an example in _Learning Java_. (How many times to I have to
mention this book? ;-))
Basically, after creating the JTextPane, use
Document d = JTextPane.getDocument();
d.insertString( int position, String, AttributeSet );
to insert colored or bold/italics text. Substitute variables where
appropriate where I have classes.
To make a simple attribute set, use something like
SimpleAttributeSet redstyle = new SimpleAttributeSet();
StyleConstants.setForeground( redstyle, Color.red );
etc.
SimpleAttributeSet is a subclass of AttributeSet (insertSring, above) so
you can just drop "redstyle" in for that parameter, for example.