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] Afficher une image


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut [JTree] Afficher une image
    Bonjour,
    Je souhaite afficher un JTree, le probléme c'est que je veux pas afficher des label sur ce JTree, mais des images. Pour le moment je ne trouve pas comment faire...Merci à l'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Bonjour,

    A priori je dirais qu'il te faut travailler sur TreeCellRenderer pour remplir chaque noeud avec une image à la place du texte.

    Cdlt

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Merci pour ta réponse ,c'est exactement ça qu'il faut utiliser. et j'ai reussi a le faire, le probleme c'est que je veux donner à mes images une taille spécifique, est il possible de resizer les images avant de les afficher??

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    La fonction recherche existe... Notamment dans la FAQ de developpez.com ...

    Allez, je suis gentil, j'affine la recherche : section GUI.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Merci pour ta réponse, mais j'ai encore un petit probléme (Désolé ,j'en ai trop). C'est que l'image que je veuw dimensionner est une ImageIcon, je ne paux malheuresement pas utilisé Image sur mon projet..Alors??

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    ImageIcon.getImage();

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Merci dingoth, ça marche nikel, sauf que si je veux afficher mes miniatures , il faut que je les resize au minimum possible pour qu'elle tiennent sur une seule ligne. est-il possible d'espacer les lignes d'un Tree de façon à pouvoir agrandir un peu mes miniatures??

  8. #8
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    tu as la méthode setRowHeight sur un JTree qui pourrait t'aider à faire ca

  9. #9
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Merci , c'est exactement ce qu'il me fallait. C'est résolu, et à bientot.

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Désolé mais derniere question pour aujourd'hui, maintenant j'arrive à afficher mon image sur les noeud de mon Tree, sauf que j'utilise toujours la meme image, celle que prend mon rendrer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    JTree tree3 = new JTree(root);
            tree3.expandRow(3); // Expand children to illustrate leaf icons
            tree3.setRowHeight(55);
     
            DefaultTreeCellRenderer renderer3 = new DefaultTreeCellRenderer();
            renderer3.setOpenIcon(icone);
            renderer3.setClosedIcon(icone);
            renderer3.setLeafIcon(icone);
     
            tree3.setCellRenderer(renderer3);
    Je veux a present utiliser d'autres images pour chaque noeud , est ce possible svp??
    Merci encore, vous m'avez beaucoup aider.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    ReRebonjour,

    logiquement pour pouvoir modifier chaque noeud, il te faut tout d'abord y accéder.
    Du coup il te faudrait peut être surcharger la méthode permettant de créer le rendu de chaque noeud, c'est à dire getTreeCellRendererComponent() si je ne me trompe pas.

    cdlt

  12. #12
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Désolé mais j'ai pas bien saisie comment utiliser la fonction getTreeCellRendererComponent(). Je dois l'utiliser à quel niveau pour inserer mes images??

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Re,

    tout d'abord je voudrais clarifier quelque chose car tu parles de deux choses différetes ici. Tu veux mettre des icones à la place des icones existantes par défaut ou mettre des icones à la place du texte qui existe normalement sur un noeud?

    Pour getTreeCellRendererComponent, il te faut faire une classe qui étend DefaultTreeCellRenderer et jouer sur le composant que cette méthode renvoie (qui correpond au component représentant un noeud).

    Cdlt

  14. #14
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Re,
    En fait, pour le moment, mon image, j'arrive à l'afficher puisque c'est elle que je passe à mon Renderer.Aprés je passe ce renderer à mon JTree, du coup cette image est affiché partout. Ce que je veux maintenant, c'est prendre chaque noeud de mon JTree et y inserer une image differentes des autres....Alors comment penses tu qu'il faut faire??

    Voici mon code complet:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
            DefaultMutableTreeNode child;
            DefaultMutableTreeNode grandChild;
     
            for(int childIndex=1; childIndex<4; childIndex++) {
                child = new DefaultMutableTreeNode("Child " + childIndex);
     
                root.add(child);
                for(int grandChildIndex=1; grandChildIndex<4; grandChildIndex++) {
                  grandChild =
                    new DefaultMutableTreeNode("Grandchild " + childIndex +
                                               "." + grandChildIndex);
     
                  child.add(grandChild);
                }
            }
     
            /** Accès au toolkit : */
            java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
            Image image = toolkit.getImage("C:/Workspace/CustomisationExample/src/images/1.JPG");
            Image myNewImage = image.getScaledInstance(50, 50, Image.SCALE_DEFAULT);
            Icon icone = new ImageIcon(myNewImage);
     
            JTree tree3 = new JTree(root);
            tree3.expandRow(3);
            tree3.setRowHeight(55);
     
            DefaultTreeCellRenderer renderer3 = new DefaultTreeCellRenderer();
            renderer3.setOpenIcon(icone);
            renderer3.setClosedIcon(icone);
            renderer3.setLeafIcon(icone);
     
            tree3.setCellRenderer(renderer3);
    Merci encore.

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    re,

    Tout d'abord il te faudrait revisiter la doc car il y a quelques éléments de réponse.

    Il me semble que tu te mélanges un peu entre données réelles et éléments affichées. Normalement il te faudrait faire un model qui va contenir tes données réelles (tes defaultMutableTreeNode) et ensuite créer ton Tree (le composant affiché) qui se base sur le modèle pour créer des components (grâce à la méthode getTreeCellRendererComponent du renderer) et les afficher à l'écran.

    Vu que tu veux toucher à la façon dont chaque noeud est crée en remplacant les labels par des images, il te faut modifier la façon dont le renderer affiche les noeuds.

    Va à cette partie, ca va t'aider surement :lien au chapitre Customizing a Tree's Display.

    Cdlt

  16. #16
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Re,
    Merci pour ta reponse. Je vais essayer de chercher sur ce point. Je vous tiendrais au courant si je trouve la solution.

Discussions similaires

  1. [VB.NET] afficher une image stockée dans une table
    Par matonfire dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/03/2004, 11h21
  2. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  3. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59
  4. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

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