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 :

[debutant][JButton] Rendre inactif


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Points : 13
    Points
    13
    Par défaut [debutant][JButton] Rendre inactif
    Bonjour,
    Je cherche à afficher un JButton dans un état inactif c'est à dire de manière à ce qu'il ne réagisse plus quand on clique dessus avec le pointeur souris.
    J'ai trouvé la méthode "setEnabled" mais celle-ci grise le bouton alors que je voudrais qu'il garde son aspect normal.
    J'ai aussi essayé la méthode "setFocusable" mais ça ne marche pas.
    Merci d'avance à tous ceux qui s'intéresseront à mon problème.

  2. #2
    Membre expérimenté 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
    Points : 1 608
    Points
    1 608
    Par défaut
    bonjour,
    si tu ne veux pas de la méthode setEnabled, il te reste à redéfinir les méthodes suivantes de ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    protected void processKeyEvent(KeyEvent e) {}
    protected void processMouseEvent(MouseEvent e) {}

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 34
    Points : 40
    Points
    40
    Par défaut
    Une solution simple consiste a definir un booleen dont dependra l'action associée au bouton. ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    boolean buttonIsActive = true;
     
    myButton.addActionlistener(new ActionListener(){
    public void actionPerformed(ActionEvent e)
    {
    if (buttonIsActive)
    {
    // action associee
    }
    }
    Ainsi, tu passes ton booleen a faux qd tu veux désactiver ton bouton, et a vrai qd tu veux le reactiver

  4. #4
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    si tu ne veux pas qui se grise tu n as qu a desactiver l action dans la methode actionperformed de ton actionlistener

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public actionperformed(Actionevent e){
     
      if(isquery){
        //action a realiser
        isquery=fasle;
      }
    }
    et tu initialise par au depart

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Merci pour ces réponses rapides.
    Citation Envoyé par herve91
    bonjour,
    si tu ne veux pas de la méthode setEnabled, il te reste à redéfinir les méthodes suivantes de ton bouton :
    Code:
    protected void processKeyEvent(KeyEvent e) {}
    protected void processMouseEvent(MouseEvent e) {}
    C'est effectivement une solution, même si ça m'oblige à créer une classe dérivée de JButton. J'espérai qu'il existe une méthode prête à l'emploi pour faire ça.

    Citation Envoyé par v1nc3kr0
    si tu ne veux pas qui se grise tu n as qu a desactiver l action dans la methode actionperformed de ton actionlistener

    Code:
    public actionperformed(Actionevent e){

    if(isquery){
    //action a realiser
    isquery=fasle;
    }
    }
    Citation Envoyé par thulsadoom
    Une solution simple consiste a definir un booleen dont dependra l'action associée au bouton. ex:

    Code:
    boolean buttonIsActive = true;

    myButton.addActionlistener(new ActionListener(){
    public void actionPerformed(ActionEvent e)
    {
    if (buttonIsActive)
    {
    // action associee
    }
    }

    Ainsi, tu passes ton booleen a faux qd tu veux désactiver ton bouton, et a vrai qd tu veux le reactiver
    J'avais pensé à cela mais même si le traitement associé au bouton n'est pas réalisé, ça n'empêche pas le bouton de réagir quand on appuie dessus (enfoncement / relâchement par exemple).

  6. #6
    Membre expérimenté 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
    Points : 1 608
    Points
    1 608
    Par défaut
    Citation Envoyé par Mille sabords
    C'est effectivement une solution, même si ça m'oblige à créer une classe dérivée de JButton.
    Ce n'est pas obligé, tu peux déclarer une classe anonyme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JButton monBoutonQuiNeReagitPas = new JButton(...) {
      protected void processKeyEvent(KeyEvent e) {} 
      protected void processMouseEvent(MouseEvent e) {} 
    };

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

Discussions similaires

  1. rendre inactif les texbox?
    Par Amandine62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/01/2005, 14h41
  2. [debutant][JButton] Modifier l'image
    Par Shooter dans le forum Composants
    Réponses: 3
    Dernier message: 16/07/2004, 15h57
  3. [Debutant][JDialog] rendre opaque un jdialog?
    Par britou dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 16/06/2004, 11h51
  4. [Debutant][JSpinner] rendre non editable.
    Par britou dans le forum Composants
    Réponses: 7
    Dernier message: 27/05/2004, 17h49
  5. Fiche à Onglets: Rendre inactif un TTabSheet
    Par Akta3d dans le forum C++Builder
    Réponses: 7
    Dernier message: 21/04/2004, 14h40

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