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 :

Héritage JButton et methode setEnabled


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut Héritage JButton et methode setEnabled
    Bonjour,

    j'ai crée une classe Boutons qui hérite de JButton pour pouvoir un peu customize les boutons de mon programme. Tout marche très bien et j'ai redéfinir plusieurs methodes déclenchées par un MouseListener.
    Ayant besoin à un certain moment de desactiver ces boutons, j'ai naturellement fait un un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boutons.setEnabled(false)
    Pourtant, je me suis apercu que bien que les boutons se grisent, les mouseListeners sont toujours actifs et je ne comprends pas pourquoi.
    J'ai absolument besoin d'utiliser des mouseListeners pour savoir si l'utilisateur a cliqué sur le bouton gauche ou droit de la souris.

    *EDIT* : Bon, en fait, ca ne vient pas de ma classe mais du MouseListener, bien que desactivé, le bouton a l'air de declencher tout de meme l'action lié au click de la souris. en utilisant un actionlistener sur un autre groupe de boutons qui n'a pas besoin de faire la distinction entre un click gauche ou droit, cela marche parfaitement.

    Quelqu'un aurait une idée s'il vous plait?
    Merci pour votre aide et bonne journée.

  2. #2
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Bonsoir,
    A mon avis(pas sûre), si tu met un MouseListener sur un élément, même désactivé, cet élément existe toujours, donc le MouseListener va fontionner.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    C'est effectivement ce que j'ai constaté... et donc je n'ai pas eu d'autres choix que de gérer ca avec une variable boolean.
    Quand je désactive l'élément, je fais en sorte que celle-ci passe à false et le contenu de la methode mouseClicked ne s'execute que si celle-ci est à true.
    Ce n'est pas très propre mais ca a le mérite de marcher !

    Merci et bonne soirée.

  4. #4
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Tu redéfinis la méthode setEnabled :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void setEnabled(boolean enabled) {
      super.setEnabled(enabled);
      if (enabled) {
        if (myMouseListener == null) {
          myMouseListener = new MouseListener() ....
          addMouseListener(myMouseListener);
        }
      } else {
        if (myMouseListener != null) {
          removeMouseListener(myMouseListener);
          myMouseListener = null;
        }
      }
    }

Discussions similaires

  1. Héritage JButton : erreur setAction
    Par Sebeee dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 14/11/2011, 08h37
  2. héritage et override methodes sous .NET
    Par julien.63 dans le forum ASP.NET
    Réponses: 15
    Dernier message: 15/10/2008, 15h47
  3. Réponses: 9
    Dernier message: 13/02/2007, 15h29
  4. Héritage : simple appel à une methode
    Par seb-oulba dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/09/2006, 12h43
  5. Réponses: 19
    Dernier message: 10/02/2005, 22h43

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