IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[SWING] Surlignement JTextArea


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Par défaut [SWING] Surlignement JTextArea
    Bonsoir à tous!
    Je poste ceci pour avoir un avis dans un premier temps car j'ai un projet d'interface graphique et je voulais savoir si ce que je souhaitais faire était possible avant de me lancer dans le code!

    Voilà, en fait, je vais avoir un composant JTextArea dans lequel se trouvera une longue chaine et en cliquant sur un bouton, je voudrais surligner des passages du texte de telle ou telle couleur... La petite subtilité se situe dans le fait que je devrai surligner (au sein d'un même texte) plusieurs groupes de mots mais en utilisant plusieurs couleurs différentes. En fait, je voudrais par exemple dans un même texte surligner tous les mots "chat" en rouge et tous les mots "chiens" en vert...

    Est-ce que quelqu'un a déjà fait ça ou alors plus simplement, est-ce que ça peut être envisageable?
    J'attends vos avis et en attendant, je vous souhaite une bonne soirée...

    Merci d'avance pour vos contributions!

  2. #2
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Cela n'est pas faisable avec une JTextArea, mais avec un JTextPane ( ou JEditorPane je sais plus ).

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Par défaut
    Maintenant que je sais que c'est faisable (certainement avec un JEditorPane), pouvez-vous m'éclaircir sur la manière de procéder?
    Faut-il par exemple que je choisisse les méthodes setSelectionStart et setSelectionEnd associées avec la méthode setSelectionColor afin de surligner tel ou tel mot (sachant que je peux connaître le début de la chaîne ainsi que sa longueur!)?
    J'ai fait des tests avec tout ça mais rien n'y fait, j'arrive même pas à sélectionner quelque chose...

    Merci d'avance pour votre aide...
    Bon après-midi!

  4. #4
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Regarde sur le net la classe Highlighter...

  5. #5
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    Petite réponse, je fais ça dans un JTextPane en récupérant getStyledDocument() et que je modifie par la suite...

    Mais sinon la classe Highlighter fonctionne aussi très bien et tu trouveras pas mal d'exemples

  6. #6
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Le problème avec le StyledDocument, c'est que le traitement est un peu long (ou peut etre que je m'y prend mal...)

  7. #7
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 54
    Par défaut
    bonjour,
    je suis également entrain de plancher sur le même problème, et je ne trouve pas d'exemple précis de code sur le net. il ne me fait pas d'erreur, mais je n'ai rien qui s'affiche en surlignement . je fais également un setCaretPosition mais je ne le vois pas... je précisé que mon JeditorPane n'est pas editable ni enabled, cela peut-il etre la cause?
    quelqu'un sait pourquoi?

  8. #8
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    Voici un petit exemple qui vous servira peut être, mais il me parait très simple. En tous cas, c'est comme cela que je l'utilise
    Il est dans une classe qui implémente ActionListener et dans la partie actionPerformed, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Highlighter h= component.getHighlighter();
    h.removeAllHighlights();
    h.addHighlight(0,10,DefaultHighlighter.DefaultPainter);

  9. #9
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 54
    Par défaut
    personnelement c'est exactement ce que je fais, et pourtant je ne vois aucune phrase de surligné... j'ai essayer pas mal de truc mais je ne vois pas de solution jusqu'a maintenant...

  10. #10
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727

  11. #11
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 54
    Par défaut
    merci bien, je vais regarder tout ça

  12. #12
    Membre éprouvé Avatar de rushtakn
    Inscrit en
    Mai 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 213
    Par défaut
    salut,

    J'ignore s'il est plus simple de travailler avec un JTextPane plutot qu'avec un JTextArea, mais sache en tout cas que ce que tu souhaites faire est tout à faire réalisable avec un JTextArea et des Highlighter

  13. #13
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 54
    Par défaut
    je te remercie, j'étais parti sur un JTextArea, mais comme ça ne donnait rien et qu'il parlait ici de JTextPane j'ai essayé, mais ça ne donne rien non plus.
    je vai voir si le fait d'empecher d'etre enabled et editabled pose problème...

Discussions similaires

  1. [SWING] pb d'affichage JTextArea translucide
    Par Deaf dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/04/2006, 08h58
  2. [swing] jScrollPane et jTextArea - probleme
    Par daed dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 21/04/2006, 22h26
  3. [Swing]Retour à la ligne dans un JTextArea
    Par Nasky dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 09/03/2006, 20h02
  4. [SWING] JScrollPane et JTextArea
    Par bonnefr dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/02/2006, 12h16
  5. [swing]Centrage du texte d'un JTextArea
    Par Lezoul dans le forum Composants
    Réponses: 3
    Dernier message: 15/06/2004, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo