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] icône d'un noeud d'un JTree


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 76
    Par défaut [JTree] icône d'un noeud d'un JTree
    Bonjour,

    Comment affecter une icône à un noeud particulier du JTree et non à tous les noeuds d'un même niveau...

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Bonjour,

    Peut être pourrais-tu y parvenir en redefinissant un TreeCellRenderer

    A++

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Citation Envoyé par NicoWrmCorp
    Peut être pourrais-tu y parvenir en redefinissant un TreeCellRenderer
    Il n'y a pas d'autre solution !
    Si tu veux simplement modifier les icones pour les noeuds "pliés", "dépliés" et les feuilles, il existe des propriétés du JTree pour cela.
    Si tu veux que certains noeuds aient un icone particulier et pas les autres (comme cela semble être le cas), tu n'as pas d'autre choix que de définir un TreeCellRenderer spécifique.

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 76
    Par défaut
    mais TreeCellRenderer gère les icones de tout le graph or moi je veux que l'icône d'un noeud particulier.

  5. #5
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Oui en effet il gère l'affichage de tous les noeuds : à toi de rendre spécifique l'affichage de tes noeuds spécifiques ...
    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
     
      public Component getTreeCellRendererComponent( JTree      a_oTree,
                                                          Object    a_oValue,
                                                          boolean   a_bSelected,
                                                          boolean   a_bExpanded,
                                                          boolean   a_bLeaf,
                                                          int       a_iRow,
                                                          boolean   a_bHasFocus)
      {
        //récupération de l'object utilisateur
        MyTreeNode o_oNode = (MyTreeNode)a_oValue;
        Component o_oCp = o_oNode.getUI(a_bSelected);
        return o_oCp;         
      }
    a_oValue est un DefaultMultableTreeNode.
    Il te suffit de surcharger cette classe (MyTreeNode), et de lui mettre par exemple une methode getUI() qui va retourner le composant bien spécifique au noeud à afficher.
    A++

  6. #6
    Membre expérimenté Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Par défaut
    Tu n'es pas obligé de tout refaire, dans ta méthode tu fais appel à la méthode par défaut et tu redéfinie pour le cas que tu souhaites.


    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
    17
    18
    19
    20
    21
    class MyRenderer extends DefaultTreeCellRenderer {
     
        public Component getTreeCellRendererComponent(JTree tree, Object value,  
                boolean sel, boolean expanded, boolean leaf, int row, 
                boolean hasFocus) {
     
    	super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,   
                    row, hasFocus);
     
    	DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
    	//Condition pour laquelle tu veux changer l'icone
    	if (node.getUserObject() instanceof Etat && 
                    !((Etat) node.getUserObject()).isDisponible()) {
    	    //On affecte à la feuille une icone différente
    	    setIcon(GifsaImage.getIconIE());
    	}
     
    	return this;
        }
     
    }

Discussions similaires

  1. JTree et modification des noeuds
    Par menuge dans le forum Composants
    Réponses: 2
    Dernier message: 05/05/2006, 08h55
  2. Nom d'un noeud d'un JTree
    Par menuge dans le forum Composants
    Réponses: 2
    Dernier message: 26/04/2006, 15h19
  3. [Swing][JTree][Affichage]Rafraichir un noeud
    Par Melchisedec dans le forum Composants
    Réponses: 2
    Dernier message: 27/03/2006, 16h10
  4. [JTree] Icônes des noeuds
    Par seiryujay dans le forum Composants
    Réponses: 4
    Dernier message: 01/09/2005, 11h22
  5. [JTree]redimensionnement d'un noeud
    Par grishka dans le forum Composants
    Réponses: 4
    Dernier message: 10/04/2003, 14h33

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