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

Composants Java Discussion :

[JTree] modification des feuilles


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut [RESOLU][JTree] modification des feuilles
    Salut,

    Est il possible de différencier une partie d'un noeud (DefaultMutableTreeNode) lorsque l'on affiche un JTree. J'utilise deja une icone qui permet de distinguer mes feuilles, mais je souhaiterais en plus
    distinguer ( couleur ou italique par ex. ) des mots clés pour chacune de mes feuilles. Quelqu'un s'est-il deja intéresser à la chose ?
    Merci d'avance de votre aide.

    _Eric_

  2. #2
    Membre confirmé Avatar de spoutyoyo
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Par défaut
    D'aprés mes souvenirs, tu implémentes un renderer pour ton JTree
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myrenderer implements TreeCellRenderer
    , et c'est dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getTreeCellRendererComponent
    que tu choisis la représentation de tes noeuds et feuilles.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    Ok je maitrise cela ... les icones, les couleurs et tout et tout ...!
    moi ce que je souhaite c'est mettre en gras ou en couleur une partie de ma feuille. J'essaie de te montrer via un exemple ;

    + XXX _ C MA FEUILLE (<=Feuille de mon arbre initiale)
    Ce que je souhaite :
    + XXX _ C MA FEUILLE (<=une partie de ma feuille est colorée ! ici C MA FEUILLE ... le reste XXX _ reste en noir.

    J'espère être aussi clair que possible.
    Je ne trouve nul part d'exemple ou de source qui traite de ce sujet. Je doute qu'il existe une solution. Ca me sortirai de mon problème de rendu des feuilles. En tout cas merci de ton aide !

  4. #4
    Membre confirmé Avatar de spoutyoyo
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Par défaut
    C'est bien ce que j'ai dit. C'est dans ta méthode getTreeCellRendererComponent qu'il faut agir.

    Par exemple:

    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
     
     
    public class monRenderer extends Jlabel implements TreeCellRenderer
     
    public Component getTreeCellRendererComponent(JTree tree,
                                                  Object value,
                                                  boolean selected,
                                                  boolean expanded,
                                                  boolean leaf,
                                                  int row,
                                                  boolean hasFocus){
    // si ta valeur est une string
    String affichage = (String)value;
    //appel à une méthode qui te mets ce que tu veux en couleur
    change(this);
    }
    Vu que les JLabel interpréte le HTML, tu peux ptet dès lors dans ta péthode change, faire genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setText("<html>"+"XXX_"+"<Font....>"+"CMAFEUILLE"+</html>");

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 9
    Par défaut
    A mon avis il faut utiliser autre chose qu'un JLabel comme composant graphique de "rendering". A vue de nez un truc du genre JTextPane peut faire l'affaire...

  6. #6
    Membre confirmé Avatar de spoutyoyo
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Par défaut
    Moi j'ai utilisé ça pour pouvoir mettre mes feuilles selon une variable en couleur différente. Comme le principe est identique, ca doit fonctionner assez simplement.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 9
    Par défaut
    Oui alors je pense qu'un éclaircissement est nécessaire :
    - spoutyoyo j'ai l'impression que tu penses que _Eric_ veut affecter une couleur différente à chaque label de feuille
    - moi j'ai compris que le texte du label devait être lui-même multicolore sur une feuille donnée.

    Ta méthode marche pour ton cas mais c'est tout. En effet je ne pense pas que le texte d'un JLabel puisse comporter plusieurs couleurs.

  8. #8
    Membre confirmé Avatar de spoutyoyo
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Par défaut
    comme je l'ai dit, je crois qu'un JLabel interpréte l'HTML donc il est certainnement possible dés lors de lui spécifier différentes Font pour différentes parties du texte de la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <HTML>texte1<Font  color="blue">texte2<Font color="red">texte3</HTML>

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    Salut ...

    En utilisant des expressions régulières permettant de formatter du String
    en HTML, il est vraissemblable que nous arrivions à mettre au point le renderer escompté.
    En effet, on peut via ces mêmes expressions régulières manipuler plus aisément du String (ValueString) et lui donner le rendu approprié.
    Il ne me reste qu'à passer en revue les différentes feuilles de mon arbre et de leur appliquer un renderer 'HTML'.

    Je vous confirmerai demain le fonctionnement optimal de votre solution.

    A demain et en attendant, merci de votre précisieuse aide.

    Eric.

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    Salut tout le monde,

    succès total de la pseudo-solution avancée ...
    (HTML dans l'arbre)

    merci à vous pour votre aide.

    Eric The king


  11. #11
    Membre confirmé Avatar de spoutyoyo
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Par défaut
    Et un résolu stp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter la sélection des feuilles Jtree
    Par le_sayan dans le forum Débuter
    Réponses: 3
    Dernier message: 19/08/2010, 09h44
  2. Empêcher la modification des formules après ajout de feuilles.
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 17/10/2009, 19h58
  3. edition ou modification des noeuds d'une arbre JTREE
    Par foufoulina2007 dans le forum Composants
    Réponses: 1
    Dernier message: 30/11/2007, 21h52
  4. JTree et modification des noeuds
    Par menuge dans le forum Composants
    Réponses: 2
    Dernier message: 05/05/2006, 08h55
  5. [JTREE] Changer l'icone des feuilles
    Par dinver dans le forum Composants
    Réponses: 3
    Dernier message: 19/01/2006, 18h11

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