11

I have a swing application that sends commands to server and receives result in XML format. I need to transform this into HTML via XSLT and then display result HTML on the panel. The problem is that the only Swing component which is able to display HTML - JEditorPane - takes either URL or javax.swing.text.StyledDocument as a source. Option with URL doesn't work for me because I have to save my html as a file on the file system first and I'd like to avoid this.

So I have a gap between in-memory result of XSL transformation and javax.swing.text.StyledDocument, which can be rendered by JEditorPane or JTextPane.

How to transform one to another? Or are there any other Swing solutions to display HTML from some in-memory source(DOM or String or whatever)?

Thank you in advance for help.

Maksym Govorischev
  • 764
  • 2
  • 5
  • 12

2 Answers2

16

Is there a reason that JEditorPane.setText() does not work for you?

I use JEditorPane all the time and I've never pulled the displayed data from a file or URL. So it is possible. Just need to figure out why it's not working for you.

To be specific:

editor.setContentType( "text/html" );    
editor.setText( "<html><body>Hello, world</body></html>" );
PSpeed
  • 3,346
  • 20
  • 12
  • Thanks a lot. I've just missed this option. Probably, while looking through the methods list I subconciously decided that it can deal only with plain text and haven't examined javadoc in detail. Thanks again – Maksym Govorischev Nov 24 '09 at 15:32
  • These classes are overly complicated I think. JEditorPane is pretty poor beyond a certain point. Unfortunately, the free options for HTML rendering tend to be LGPL. In case that restriction is ever less important than the rendering quality there is Lobo Browser's Cobra component: http://lobobrowser.org/cobra.jsp And by far the best, the DJ Native Project: http://djproject.sourceforge.net/ns/ It bridges Swing and SWT to access the operating system's native browser component. – PSpeed Nov 24 '09 at 16:36
  • 1
    `setContentType`... that's what I was missing. Thanks @PSpeed – Xynariz Dec 10 '13 at 05:54
  • it does not accept some `html tags` like `header` , `footer` etc. – Inzimam Tariq IT Dec 29 '16 at 19:34
  • and how you run javascript in case of `JEditorPane`? – Inzimam Tariq IT Dec 29 '16 at 19:35
2

What about JeditorPane.setText() ?

EJB
  • 2,383
  • 14
  • 15