Re: Display XML Formatted in JTextPane
Jason Cavett wrote:
On Apr 7, 3:25 pm, Mark Space <marksp...@sbc.global.net> wrote:
Jason Cavett wrote:
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 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.
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.