Bonjour,

J’essaye de créer un editeur de texte avec un JTextPane, accompagné d’un système de sauvegarde/chargement.
Le modèle de document utilisé est un HTMLDocument.
Pour sauvegarder en HTML, j’utilise donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
StringWriter writer = new StringWriter();
htmlEditorKit.write(writer, htmlDocument, 0, htmlDocument.getLength());
et pour charger mon contenu HTML sauvegardé (htmlContentSaved) dans un nouveau JTextPane :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
htmlEditorKit.read(new StringReader(htmlContentSaved), htmlDoc, 0);
Pour la gestion de l’alignement, j’utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
new HTMLEditorKit.AlignmentAction("left", 0)
new HTMLEditorKit.AlignmentAction("center", 1)
J’ai vu que cela ajoutait l’attribut CSS.attributes.TEXT_ALIGN au paragraphe en cours.
Lors de la sauvegarde, cet attribut est converti en HTML.attributes.ALIGN.
Au chargement, lorsque je veux centrer mon texte, j’utilise donc la même méthode qui ajoute un CSS.attributes.TEXT_ALIGN. Mais cela semble entrer en conflit avec l’attribut HTML.attributes.ALIGN qui a été régénéré au chargement et mon texte ne s’aligne pas : il reste en place.

Cela m’amène aux questions suivantes :

- Comment faire pour gérer ce « conflit » entre les attributs HTML et CSS ? Est-ce qu’il faut utiliser d’autres méthodes pour aligner, sauvegarder ou charger ?
- De manière générale, quelles seraient les bonnes pratiques pour réaliser ce traitement de texte (styles, méthodes de sauvegarde/chargement, …)

Je vous remercie par avance pour vos réponses.