Pregunta

Tengo un pequeño applet de swing (500 kb) que muestra un conjunto muy simple / limitado de páginas HTML pequeñas en su interior con JEditorPane. Sin embargo, esto no parece funcionar al 100% con fluidez, algunos clientes obtienen una página en blanco sin Cualquier excepción de Java. La página funciona bien desde mi máquina. Necesito una forma más confiable de mostrar la página HTML a todos nuestros usuarios.

Cualquier idea si hay una clase pequeña + gratuita para usar en lugar de JEditorPane O hay una solución fácil para hacerlo más confiable (no en blanco)

private JEditorPane m_editorPane = new JTextPane();


    m_editorPane.setEditable( false);

    m_editorPane.setBackground(new Color(239  ,255, 215));
    m_editorPane.setBounds(30,42,520,478 );
    m_editorPane.setDoubleBuffered(true);
    m_editorPane.setBorder(null);

    m_editorPane.registerEditorKitForContentType("text/html", "com.xxxxx.SynchronousHTMLEditorKit");


m_editorPane.setPage(ResourceLoader.getURLforDataFile(param.trim())); 
¿Fue útil?

Solución

AFAIK, JEditorPane es un componente HTML muy primitivo: CSS lo confunde y no sabe nada acerca de JS.
Dudo que encuentres un " pequeño + gratis " A la clase le va mejor, el análisis y la visualización de HTML no es un asunto simple, incluso menos hoy en día.

Quizás es mejor dejar que los grandes nombres de la empresa se encarguen de esta tarea, es decir. utilizando los componentes de Internet Explorer o Mozilla (dependiendo de lo que esté disponible, etc.): JDIC: incrustación de un navegador web en Java .

Otros consejos

Aunque no lo he usado antes, Lobo es un navegador web de código abierto para Java con soporte para HTML 4, Javascript y CSS 2.

Comparado con el JEditorPane que solo es compatible con HTML 3.2, parece que Lobo puede ser una mejor apuesta para cargar páginas web modernas.

Recientemente he realizado POC-ed varias soluciones de representación HTML de Java. Nos decidimos por JEditorPane porque realmente necesitamos minimizar el tamaño de nuestro frasco y está integrado en Swing. Sin embargo, la mejor biblioteca que encontré fue Flying Saucer . No tiene soporte de js, pero es calidad de renderizado y api es de primera clase, y es " gratis " (LGLP), 100% Java, y solo alrededor de 1 mb (aún es demasiado grande para nosotros, pero pequeño en comparación con otras opciones). Sin embargo, solo presenta XHTML estricto (todos los valores de los atributos deben citarse, todas las etiquetas están formadas correctamente), pero eso puede estar bien dependiendo de sus necesidades (y HtmlCleaner o alguna otra utilidad similar puede ayudar a ese fin).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top