Bonjour, j'arrive à insérer des tags HTML dans un JTextPane comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
HTMLDocument doc = ( HTMLDocument )zoneTexte.getDocument( );
int min = zoneTexte.getSelectionStart( );
 
javax.swing.text.Element elem = doc.getCharacterElement( min );
String text = zoneTexte.getSelectedText( );
javax.swing.text.SimpleAttributeSet newAttr = new javax.swing.text.SimpleAttributeSet();
javax.swing.text.AttributeSet a = elem.getAttributes();
newAttr.addAttributes(a);
 
if( a.getAttribute( tag ) == null ){
	newAttr.addAttribute( tag, "" );
}
else{
	newAttr.removeAttribute( tag );
}
try{
	// Supprime la sélection
	doc.remove( min, text.length( ) );
	// Rajoute la sélection + tag
	doc.insertString( min, text, newAttr );
	}catch ( BadLocationException exception ) { exception.printStackTrace( ); }
zoneTexte étant mon JTextPane et tag étant un tag HTML (HTML.Tag.B ...)

Ca marche bien pour 80% des cas. A partir du moment ou le tag n'a pas d'attributs. (<b></b>, <i></i>, ...)
Pour les autres (exemple : <div align="center"> </div>) je ne sais pas comment il faut faire.

La méthode newAttr.addAttribute( tag, "" ); a comme deuxième paramètre "Object value", j'imagine donc que c'est un élément de réponse.

J'ai essayé de faire newAttr.addAttribute( tag, "align=center" ); mais ça ne fait rien du tout.

J'ai regardé du coté de la classe HTML, il y a une sous-classe HTML.Attribute mais il n'y a que des "accesseur"(get) dedans.

Comment faire pour insérer des tags "complexe" ?
Merci d'avance !

Je pense qu'il faut que je passe par une variable de type HTML et que je fasse :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
newAttr.addAttribute( html, "center" );
mais je ne sais pas construire une variable de type HTML...