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

AWT/Swing Java Discussion :

Identification des JLabel dans l'event MouseClicked


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Par défaut Identification des JLabel dans l'event MouseClicked
    Bonjour à tous,

    Un petit problème durant ma conception d'une interface graphique.

    Dans une boucle for, j'instancie des labels, chaque label affiche une image. Cependant, lors d'un event, je n'arrive pas à déterminer sur quel JLABEL le clic à eu lieu....

    Est-t-il possible d'identifier un label et récuperer son identifiant sans pour autant qu'il soit visible. Je ne peux pas me baser sur la propriété texte vu que je n'affiche pas de texte mais des images!

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int c = 0; c<6; c++) {
    tableau[c]=createJLabel();
    }
    createJLabel() instancie simplement des JLabels...

    Comment puis-je faire lors d'un : public void mouseClicked(MouseEvent e) d'identifier quel ou quel label j'ai instancié ?! Lors d'un println d'un e.getSource() sur les jlabel crée, j'ai toutes les mêmes infos !

    Merci à vous

  2. #2
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour replicator

    Voici un bout de code qui t'expliquera comment faire

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    import java.awt.Component;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
     
     
    public class TestLabel extends JFrame {
     
      private JLabel[] tableau = new JLabel[6];
     
      public TestLabel() {
        setLayout(null);
        for (int c = 0; c<6; c++) {
             tableau[c]=createJLabel(c);
             add(tableau[c]);
          }
      }
     
      private JLabel createJLabel(int i) {
        JLabel label = new JLabel("C'est le label " + i);
        label.setBounds(10, 10+i*20, 300, 15);
     
        label.addMouseListener(new MouseListener() {
     
          @Override
          public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub
     
          }
     
          @Override
          public void mousePressed(MouseEvent e) {
            Component component = e.getComponent();
            if (component instanceof JLabel) {
              JLabel label = (JLabel) component;
              JOptionPane.showMessageDialog(null, label.getText());
            }
     
          }
     
          @Override
          public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub
     
          }
     
          @Override
          public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub
     
          }
     
          @Override
          public void mouseClicked(MouseEvent e) {
            // TODO Auto-generated method stub
     
          }
        });
        return label;
      }
     
      /**
       * @param args
       */
      public static void main(String[] args) {
        TestLabel frame = new TestLabel();
        frame.setBounds(100,100,500,400);
        frame.setVisible(true);
      }
     
    }
    Regarde ce que j'ai fait dans la méthode mousePressed.
    en utilisant le getComponent tu récupère l'objet qui a généré l'event.
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Par défaut merci
    Réponse parfaite :-)

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/07/2013, 09h39
  2. [Débutant] Identification des NaN dans un Vecteur
    Par kheira dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/03/2010, 08h35
  3. créer des Jlabel dans une boucle
    Par ballantine's dans le forum Débuter
    Réponses: 11
    Dernier message: 18/01/2010, 13h20
  4. Identification des utilisateurs dans MySQL
    Par Ganymede dans le forum Débuter
    Réponses: 8
    Dernier message: 27/08/2008, 11h40
  5. Evenements sur des JLabel dans une JList
    Par Tibo dans le forum Composants
    Réponses: 6
    Dernier message: 30/06/2006, 11h06

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