2009-12-05 5 views
2

J'ai un modèle qui est une file d'attente de chaînes associées à des types enum. J'essaie d'afficher ce modèle dans un JEditorPane, avec chaque élément de la file d'attente sous la forme d'un paragraphe HTML distinct dont les attributs sont basés sur le type enum associé. Cependant, mes méthodes de mise à jour ne font pas ce que je veux. J'ai essayé d'écrire les chaînes HTML directement dans le document (par exemple, je prends les chaînes, ajoute <p style="color:red"> et ajoute </p> puis les insère à la fin du document), mais cela me donne les balises html dans la sortie (au lieu de formatage) - ce qui bien sûr est incompatible avec le résultat de mettre les balises sur la chaîne que j'utilise construire le document avec JEditorPane ("text/html", String foo). J'ai également essayé d'insérer avec un AttributeSet, mais apparemment je fais aussi mal.Java Swing JEditorPane: manipuler des documents stylés

Des suggestions?

Répondre

1

Je n'ai jamais eu beaucoup de chance de jouer avec du HTML dans un JEditorPane. J'utilise simplement des attributs dans un JTextPane. Quelque chose comme:

SimpleAttributSet keyWord = new SimpleAttributeSet(); 
StyleConstants.setForeground(keyWord, Color.RED); 
StyleConstants.setBackground(keyWord, Color.YELLOW); 
StyleConstants.setBold(keyWord, true); 

try 
{ 
    doc.insertString(doc.getLength(), "\nSome more text", keyWord); 
} 
catch(Exception e) {} 
+0

Cela fonctionne très bien, merci; J'aimerais quand même supporter la mise en forme HTML, mais ce n'est pas nécessaire pour le moment et je pense avoir suffisamment disséqué les préoccupations pour que ce soit une simple substitution plus tard. – Carl

+0

Ce lien montre mon meilleur effort pour utiliser le HTMLEditorKit. Peut-être que vous pouvez le comprendre mieux que moi: http://forums.sun.com/thread.jspa?forumID=57&threadID=707909 – camickr