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 :

JLabel et Icon


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut JLabel et Icon
    Salut,

    J'ai une fonction qui affiche un certains nombres d'images en miniature dans un Panel.
    Chaque image est transformé en une ImageIcon qui est insérée dans un JLabel afin de pouvoir être affiché.

    Je souhaite pouvoir permettre a l'utilisateur de cliquer sur une des images pour qu'elle s'affiche en grand. Pour ça il faut évidemment que je connaisse l'emplacement du fichier de l'image sur laquelle j'ai cliqué.

    Et c'est au niveau du traitement du "clic" que j'ai un problème.

    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
    private void loadFile(Vector filePath) {
                 [...]
                for (int i = 0; i < filePath.size(); i++) {
     
                        BufferedImage image = [...]
                       
                        ImageIcon icon = new ImageIcon(image);
                        JLabel label = new JLabel(icon);
                        label.setText("" + (i + 1));
                       
                        MouseListener ml = new MouseAdapter() {
    
                            public void mouseClicked(MouseEvent me) {
                                JLabel label = (JLabel) me.getSource();                   
                                int i = Integer.parseInt(label.getText())-1;
                                System.out.println("Clicks: " + i);
                                Icon img = label.getIcon();
    
                            }
                        };
                        label.addMouseListener(ml);
    
                        jPanelAffichageMiniature.add(label);
                    
                }
    }
    (J'ai simplifié le code)

    Chaque label est associé a une méthode MouseListener. J'aimerais dans cette fonction récupérer le chemin du fichier.
    -Icon img = label.getIcon(); --> Icon n'a aucune méthode précisant l'emplacement du fichier avec laquelle elle est formée.
    - int i = Integer.parseInt(label.getText())-1; --> J'associe a chaque label un numéro. Je pensais après aller récupérer le nom du fichier dans le Vector filePath a l'indice correspondant. Pas génial comme méthode mais ca ne fonctionne de toute façon pas puisque dans la fonction mouseClicked je ne peux utiliser le filePath que si il est final...
    EDIT: -Je viens de trouver une solution assez barbare. Je met comme text du label le chemin du fichier en police taille 0...je peux ainsi le récupérer avec getText()...si qqun a mieux...

    Est-ce que vous auriez une idée sur la manière de récupérer?

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Plutôt que de mettre un text de police 0, ce serait mieux de le mettre en ToolTupText non? (via la méthode setToolTipText)

    Sinon une autre solution serait de stocker une Map qui associe le chemin à chaque JLabel pour pouvoir ensuite le retrouver.

    Ou sinon tu peux également faire une classe qui étend JLabel pour y ajouter le chemin de l'image en attribut.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    L'idée de la Map me plait bien

    Merci à toi pour cette réponse très rapide

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

Discussions similaires

  1. Icone dans un JLabel
    Par IMPRO dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 27/06/2011, 02h31
  2. Icone dans un JLabel s'affiche pas
    Par tims12 dans le forum Composants
    Réponses: 2
    Dernier message: 25/01/2010, 16h48
  3. Réponses: 2
    Dernier message: 30/05/2008, 20h31
  4. [JLabel] Inverser icone/texte
    Par smarties dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/01/2007, 15h11
  5. [JLabel] Changement de l'icon
    Par scifire dans le forum Composants
    Réponses: 5
    Dernier message: 18/07/2005, 14h31

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