[Java] JEditoPane – HTML synchron laden

Für mein beamer-tool-Projekt benötigte ich die Möglichkeit, HTML-Dokument (die sowieso lokal vorliegen) synchron in’s JEditorPane zu laden.

Dazu habe ich nach etwas Google- und Java-API-Suche folgende HTMLEditorKit-Klasse erstellt:

  1. import javax.swing.text.Document;
  2. import javax.swing.text.html.HTMLDocument;
  3. import javax.swing.text.html.HTMLEditorKit;
  4.  
  5. public class SnycHTMLEditorKit extends HTMLEditorKit {
  6.     private static final long serialVersionUID = 1L;
  7.  
  8.     @Override
  9.     public Document createDefaultDocument() {
  10.         HTMLDocument doc = (HTMLDocument)super.createDefaultDocument();
  11.         doc.setAsynchronousLoadPriority(-1);
  12.         return doc;
  13.     }
  14. }

/*…*/
Genutzt wird das ganze dann so:

  1. /*...*/
  2. /* create jeditorpane with own editorkit */
  3. JEditorPane ep = new JEditorPane();
  4. ep.setEditorKit(new SnycHTMLEditorKit());
  5. /* loads page synchronous */
  6. ep.setPage( url );
  7. /*...*/

Dies funktioniert auch nach ersten Tests ohne Probleme.
Eine schöne Lösung wie ich auch finde.

Schreibe einen Kommentar