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] Icones personnalisés


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 39
    Par défaut [JTree] Icones personnalisés
    Bonjour,

    J'ai un JTree qui représente les dossiers physiques et leurs contenus d'un répertoire de mon disque dur, et j'aimerais savoir s'il était possible de modifier l'icône du nœud en fonction de son type (dossier ou fichier)

    J'ai vu que l'on pouvait modifier l'icône selon si c'est un noeud ou une feuille avec setOpenIcon, setClosedIcon et setLeafIcon, sauf que certains de mes dossiers peuvent être vides et donc être des feuilles.

    Merci d'avance pour votre aide

    Cordialement,
    pikmin

  2. #2
    Membre expérimenté Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Par défaut
    Essaie d'utiliser un renderer, comme ceci:
    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
    ...
    class FileTreeRenderer extends DefaultTreeCellRenderer {
        private FileSystemView fsv = FileSystemView.getFileSystemView();
        private File f;
    ...
        @Override
                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);
    ...
            f = new File(fileName);
            try {
                setIcon(fsv.getSystemIcon(f));
            } catch (Exception e) {
            }
    ...
            return this;
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tree.setCellRenderer(new FileTreeRenderer());

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 39
    Par défaut
    Désolé pour la réponse si tardive, mais je suis un peu occupé ces temps-ci. Je n'ai pas encore eu le temps d'essayer, mais ça ne devrait tarder.

    Merci pour la réponse

Discussions similaires

  1. [VBA]Modifier icones personnalisés depuis VBA
    Par pascal78 dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/04/2007, 18h24
  2. JTree, icone d'un noeud selon une variable
    Par remayy dans le forum Composants
    Réponses: 3
    Dernier message: 17/10/2006, 09h26
  3. [JTREE] Changer l'icone des feuilles
    Par dinver dans le forum Composants
    Réponses: 3
    Dernier message: 19/01/2006, 18h11
  4. [JTree] Noeuds personnalisés
    Par devmat dans le forum Composants
    Réponses: 5
    Dernier message: 18/09/2005, 22h28
  5. [JTree] TreeNode avec icon
    Par Breiz-ilien dans le forum Composants
    Réponses: 3
    Dernier message: 05/04/2005, 16h26

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