JTextPane et styles

Résolu
Driix Messages postés 8 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 4 mars 2008 - 31 janv. 2006 à 15:58
Driix Messages postés 8 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 4 mars 2008 - 2 févr. 2006 à 17:40
Bonjour tlm



Description



J'ai 2 JTextPane :

- jtpAfficher : pour l'affichage

- jtpSaisir : pour la saisie



Je saisi un texte dans jtpSaisir et lui applique des styles (style
appliqué à un mot/phrase), puis je valide et le texte s'ajoute au
contenu du jtpAfficher.




Questions




1) Comment peut on récupérer le style du "texte selectionné" dans jtpSaisir ?




2) Comment afficher le texte du jtpSaisir dans
jtpAfficher avec les styles ?



Merci d'avance





PS : j'espère que c'est assez explicite

7 réponses

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
1 févr. 2006 à 13:48
Vlà un bout de code que j'avais fait :



//Nous allons appliquer la mise ne forme

try{



//Ceci est nécessaire pour conserver le style de
chaque caractére



String tempo = texte.getSelectedText();



int pos = texte.getSelectionStart();







for(int i = 0; i < tempo.length(); i++){



//Déplacement du curseur



texte.setCaretPosition(pos + i);







//Récupération du style du
caractére



SimpleAttributeSet style = new
SimpleAttributeSet(texte.




getCharacterAttributes());







//Affectation de la police




StyleConstants.setFontFamily(style, result.getPolice());







//Affectation de la taille



StyleConstants.setFontSize(style,
result.getSize());







//Affectation du gras



StyleConstants.setBold(style,
result.isBold());







//Affectation de l'italique



StyleConstants.setItalic(style,
result.isItalic());







//Réaffectation dans le texte




texte.getStyledDocument().insertString(pos + i,




String.valueOf(tempo.charAt(i)),




style);







//Elimination de l'ancien
caractére




texte.getStyledDocument().remove(pos + i + 1, 1);



}

}



catch(Exception ex){





}

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
3
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
31 janv. 2006 à 16:39
Salut,

pour récupérer le style, tu peux utiliser un SimpleAttributeSet, et pour affecter, il me semble qu'il faut utiliser StyleConstants et SimpleAttributeSet conjointement.



Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
Driix Messages postés 8 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 4 mars 2008
31 janv. 2006 à 17:00
J'utilise les StyleConstants pour modifier mes styles.

Par contre SimpleAttributeSet, je ne connais pas.



Pourrais tu me donner un exemple pour récuperer le style d'un texte selectionné dans
jtpSaisir stp.







Merci d'avance.
0
Driix Messages postés 8 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 4 mars 2008
1 févr. 2006 à 14:34
Merci d'avoir prit le temps de me réponde.
Ton code est clair et bien commenté, vraiment facile à comprendre.


J'ai testé ta solution et elle fonctionne ! Mon 1er problème est résolut.

Par contre, pour la question 2 :
- Comment ajouter le texte de jtpSaisir dans
jtpAfficher avec les styles ?

En fait, le texte est envoyé à un serveur qui le retourne au client.
Du coup, avec ta solution, pour chaque caractère je dois stocker son style... C'est un peu lourd.

Je me demande s'il n'y a pas une autre solution.
En effet, dans ce cas, c'est le texte entier avec ses styles que j'insère, il n'y a pas de changement de style.

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
2 févr. 2006 à 09:11
C'est vrai que caractére que caractére est un peu lourd (c'était la
seule solution que j'avais trouvé), mais je crois qu'il n'y a pas
beaucoup de solutions.



Par contre, sur ce site, il existe des chat en client/serveur qui gére
le style il me semble. De ce fait, tu devrais trouver ton bonheur (ou
alors une autre solution : tu envois le texte ET le
getStyledDocument()).



ici un lien : http://www.javafr.com/code.aspx?id=28728



Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
Driix Messages postés 8 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 4 mars 2008
2 févr. 2006 à 17:40
Je vais regarder les sources des chats client/serveur, mais ça va me prendre du temps.

Je posterai un message ici, si je trouve une autre solution.

Encore merci pour ton aide.
0
Driix Messages postés 8 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 4 mars 2008
2 févr. 2006 à 17:40
Je vais regarder les sources des chats client/serveur, mais ça va me prendre du temps.

Je posterai un message ici, si je trouve une autre solution.

Encore merci pour ton aide.
0