Tu peux faire ton JEditorPane avec les arguments "text/html" et "" d'office, pour avoir un éditeur de HTML vide, puis avec ton Thread gérer une variable String vide au départ, dans laquelle tu ajoutes ligne par ligne ton texte et que tu attribues au fur et à mesure à ton JEditorPane par setText().
C'est la méthode la plus simple, mais elle a un inconvénient : à chaque ajout lde logne la page sera rehcargée par l'éditeur, ce qui fait notemment remonter le Caret le cas échéant.
Sinon tu peux réellement mettre à jour le domcument au fur et à mesure, en extrayant l'objet document de ton JEditorPAne avec getDocument(), puis en utilisant la méthode insertBeforeEnd() qui ajoute comme son nom l'indique le texte (balises y compris) que tu lui soumets juste avant la balise de fin d'un élément (c'est à dire en l'occurence une balise) que tu lui soumets.
Pour obtenir le dit objet Element, tu peux commencer par donner au constructeur du Pane un document un peu plus élaboré que la chaîne vide que je te suggérais plus haut :
<html>
<head>
contenu du head
</head>
<body>
<div id="monid">
</div>
</body>
tu peux alors créer un élément ainsi :
JEditorPane pane = new JEditorPane(""text/html", "structure_de_ta_page");
Element monid = pane.getDocument().getElement("monid");
Comme tu l'auras compris, le fait d'appeler alors pane.getDocument().insertBeforeEnd(monid, "montexte") insérera ton texte juste avant la balise </div>
Le Document possède également une méthode getDefaultRootElement() qui doit correspondre à la balise body();
Tu peux aussi utiliser un HTMLEditorKit (à la place de tout ça), et utiliser sa méthode insertHTML.
Il faut alors que tu fasses des essais pour voir combien de bytes prennent réellement les balises </body> et </html>, ainsi qu eles espaces et sauts de lignes qui les séparent, pour pouvoir insérer ton texte au bon endroit. Nous appellerons ce nombre N. Tu devrais alors obtenir :
JEditorPane pane = new JEditorPane();
HTMLDocument doc = (HTMLDocument)pane.getDocument(); //getDocument() est de type Document, mais l'objet
HTMLEditorKit edit = new HTMLEditorKit(); //renvoyé est bien un HTMLDocument)
Puis pour chaque ajout de texte :
edit.insertHTML(doc, pane.getText().length() - N, 0, 0, null);
Avec ça tu devrais pouvoir faire ce que tu veux ;)
Nitruk