Hello tout le monde...

J'ai fait une classe qui hérite de JTextpane et dedans j'ai la méthode suivante qui permet de modifier le style du texte sélectionné :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
/**
 * Méthode pour changer le style du texte sélectionné.
 * Si un/des paramètres sont à null, le style correspondant au paramètre n'est pas changé
 */
public void setFontTextSelected(Boolean bold, Boolean italic, Boolean underline, Boolean middleline, Color foreground, String police, Integer size, Integer alignement) {
 
 
	MutableAttributeSet attrs = getInputAttributes();
 
 
	// On applique les différents styles
	if(bold != null) 		StyleConstants.setBold(attrs, bold.booleanValue());
	if(italic != null) 		StyleConstants.setItalic(attrs, italic.booleanValue());
	if(underline != null) 	StyleConstants.setUnderline(attrs, underline.booleanValue());
	if(middleline != null) 	StyleConstants.setStrikeThrough(attrs, middleline.booleanValue());
	if(foreground != null) 	StyleConstants.setForeground(attrs, foreground);
	if(police != null) 		StyleConstants.setFontFamily(attrs, police);
	if(size != null) 		StyleConstants.setFontSize(attrs, size.intValue());
 
 
 
 
       // on modifie uniquement le texte sélectionné
	int start = getSelectionStart();
	int end   = getSelectionEnd();
        document.setCharacterAttributes(start, end-start, attrs, false);
 
 
        if(alignement != null) 	{
 
        	StyleConstants.setAlignment(attrs, alignement.intValue());
        	document.setParagraphAttributes(start, end-start, attrs, false);
        }
}

Le problème c'est que certaine fois, si le texte sélectionné a plusieurs styles différents, par exemple : ceci est mon texte (une partie en italique)
Et que je vais mettre une partie en gras par exemple, comme ceci : ceci est mon texte

Mon erreur c'est que j'obtient ceci : ceci est mon texte (La partie en rouge est fausse, le texte est devenu en italique alors qu'il ne devrait pas)

Je sais pas si j'ai été compréhensible...

Il faudrait que je puisse modifier les styles du texte sélectionné en modifiant uniquement une propriétée...

Merci de votre aide