JTextPane et styles

Résolu
Signaler
Messages postés
8
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
4 mars 2008
-
Messages postés
8
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
4 mars 2008
-
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

Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20
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
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20
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
Messages postés
8
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
4 mars 2008

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.
Messages postés
8
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
4 mars 2008

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
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20
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
Messages postés
8
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
4 mars 2008

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.
Messages postés
8
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
4 mars 2008

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.