2010-05-22 5 views
1

J'affiche certaines tables en tant que code HTML (rendu par un modèle Freemarker) avec un JTextPane. J'ai aussi des liens HTML dans cette sortie HTML qui peuvent être utilisés pour interagir avec les valeurs de la table (par exemple "Supprimer une ligne" et des trucs comme ça). Actuellement, je recrée toujours la sortie HTML complète à chaque changement et remplace le document entier dans le JTextPane par le nouveau. Cela devient vraiment lent et le JTextPane change toujours la position de défilement quand je fais cela.Modification du contenu de HTMLDocument affiché dans un JTextPane

Est-il possible de modifier uniquement certaines parties du code HTML pendant l'exécution sans remplacer le document entier? Dans un vrai navigateur j'utiliserais le DOM et ferais quelque chose comme document.getElementById ("price"). InnerHTML = "$ 123.44". Est-ce que quelque chose comme ça est possible avec HTMLDocument dans un JTextPane?

Répondre

2

Vous pouvez appeler getDocument() sur le JTextPane pour obtenir un HTMLDocument, qui peut être parcourue comme suggéré dans ce example. Vous pouvez utiliser replace(), setInnerHTML() ou setOuterHTML() selon les besoins.

Questions connexes