2009-11-24 17 views
10

Tengo una aplicación swing que envía comandos al servidor y recibe el resultado en formato XML. Necesito transformar esto en HTML a través de XSLT y luego mostrar el resultado HTML en el panel. El problema es que el único componente Swing que puede mostrar HTML - JEditorPane - toma URL o javax.swing.text.StyledDocument como fuente. La opción con URL no funciona para mí porque primero tengo que guardar mi html como un archivo en el sistema de archivos y me gustaría evitarlo.Renderizar html en la aplicación Swing

Tengo una brecha entre el resultado en memoria de la transformación XSL y javax.swing.text.StyledDocument, que puede representarse con JEditorPane o JTextPane.

¿Cómo transformar uno a otro? ¿O hay otras soluciones de Swing para mostrar HTML de alguna fuente en memoria (DOM o String o lo que sea)?

Gracias de antemano por su ayuda.

Respuesta

14

¿Hay alguna razón por la que JEditorPane.setText() no funcione para usted?

Uso JEditorPane todo el tiempo y nunca he sacado los datos mostrados de un archivo o URL. Entonces es posible. Solo necesito descubrir por qué no funciona para ti.

Para ser más específicos:

editor.setContentType("text/html");  
editor.setText("<html><body>Hello, world</body></html>"); 
+0

Muchas gracias. Me acabo de perder esta opción. Probablemente, mientras reviso la lista de métodos, decidí de forma subconsciente que solo puede tratarse con texto sin formato y no ha examinado javadoc en detalle. Gracias de nuevo –

+0

Creo que estas clases son demasiado complicadas. JEditorPane es bastante pobre más allá de cierto punto. Desafortunadamente, las opciones gratuitas para la representación de HTML tienden a ser LGPL. En caso de que la restricción sea cada vez menos importante que la calidad de representación, existe el componente Cobra de Lobo Browser: http://lobobrowser.org/cobra.jsp Y, con mucho, el mejor, el Proyecto DJ Native: http://djproject.sourceforge.net/ns/Conecta Swing y SWT para acceder al componente de navegador nativo del sistema operativo. – PSpeed

+0

Sí, los vi, pero de nuevo, LGPL no funciona para mí –

2

¿Qué hay de JeditorPane.setText()?

Cuestiones relacionadas