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 :

MouseListener et JPanel


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
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut MouseListener et JPanel
    Bonjour,

    J'ai un JPanel auquel j'ai ajoute un MouseListener et un MouseMotionListener.

    J'aimerais savoir si il est possible depuis ma classe qui implémente ces deux interfaces d'obtenir mon JPanel afin de récupérer la taille de ce JPanel depuis ma seconde classe.

    Je navigue actuellement sur l'api de java mais je ne trouve pas de methode me permettant de faire celà.

    Si vous savez le faire ou si vous savez que c'est impossible merci de m'aider :p

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    tu utilises la méthode getSource() via l'objet de type MouseEvent, ça retourne l'objet sur lequel l'événement s'est produit, après tu fais le cast nécessaire pour obtenir ton jpanel, car le type de retour de cette méthode est Object

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Tu récupères la source de l'évènement e
    Object source = e.getSource();
    // Tu castes ta source en JPanel
    JPanel panel = (JPanel) source;
    // Tu récupères la taille de ton JPanel
    int hauteur = panel.getHeight();
    int largeur = panel.getWidth();

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Il est préférable de toujours tester le type d'objet avant un cast même si on est sûr de ce que ça sera.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Tu récupères la source de l'évènement e
    Object source = e.getSource();
    if (source instanceof JPanel) {
        // Tu castes ta source en JPanel
        JPanel panel = (JPanel) source;
        // Tu récupères la taille de ton JPanel
        int hauteur = panel.getHeight();
        int largeur = panel.getWidth();
    }

Discussions similaires

  1. JPanel dans un autre JPanel/ MouseListener
    Par ralphb dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 13/07/2010, 11h47
  2. Mouselistener et JPanel
    Par psychoP@T dans le forum Débuter
    Réponses: 1
    Dernier message: 04/05/2009, 10h35
  3. MouseListener sur un JPanel
    Par WerKa dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 16/05/2008, 13h30
  4. JPanel et Border
    Par titoine dans le forum Débuter
    Réponses: 3
    Dernier message: 22/04/2003, 15h58

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