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

Interfaces Graphiques en Java Discussion :

Désactiver un bouton


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 86
    Par défaut Désactiver un bouton
    Bonjour,

    Au sein de l'appli que je developpe, j'ai un boutton dans un JPanel. Normalement, quand on appuie sur une boutton , la fonction est appele (bien sur si on a deja fait addActionListener sur la boutton en question). Ce n'est pas la le probleme. En fait, il m'a ete demande que qu'on appui sur le boutton il faut que je la desactive pendant la duréé du traitement qu'elle a sense a realiser et apres de la reactive.



    Ce que j'ai , c'est d'appeler la fonction setEnabled dans la fonction actionPerformed comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
              javax.swing.SwingUtilities.invokeLater(new Runnable() {
    		  public void run() {			            	
     
     
    				button.setEnabled(false) ;	         
    		 }
     
    	 }
    });
    Avec ce code, j'ai reussi a faire en sorte que le button quand elle est appele la premeire fois on peu pas declencher une deuxieme fois son traitement.
    Mon probleme, c'est l'apparance de button n'est jamais change, ca ve dire qu'elle devienne pas grise !

    J'ai essaye tous les focnrtions (update, repaind, refrech, ....) et rien a change.

    Ma question ,est qu'on peut discativer le boutton et son apparance dans son fonction actionPerformed ?

    Merci pour toute reponse

    Bonne journée

  2. #2
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    As-tu essayé aussi une revalidate() ou repaint() sur le container de ton JButton ?

  3. #3
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    Je pense que la méthode invokeLater() n'est pas adaptée dans ce cas de figure. Hélas! c'est une méthode puissante, très adorée au regard du nombre de citation dans les forums, mais qui n'est qu'un raccourci de plusieurs commandes, par expérience.
    Citation Envoyé par kass28
    Bonjour,

    Au sein de l'appli que je developpe, j'ai un boutton dans un JPanel. Normalement, quand on appuie sur une boutton , la fonction est appele (bien sur si on a deja fait addActionListener sur la boutton en question). Ce n'est pas la le probleme. En fait, il m'a ete demande que qu'on appui sur le boutton il faut que je la desactive pendant la duréé du traitement qu'elle a sense a realiser et apres de la reactive.



    Ce que j'ai , c'est d'appeler la fonction setEnabled dans la fonction actionPerformed comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
              javax.swing.SwingUtilities.invokeLater(new Runnable() {
    		  public void run() {			            	
     
     
    				button.setEnabled(false) ;	         
    		 }
     
    	 }
    });
    Avec ce code, j'ai reussi a faire en sorte que le button quand elle est appele la premeire fois on peu pas declencher une deuxieme fois son traitement.
    Mon probleme, c'est l'apparance de button n'est jamais change, ca ve dire qu'elle devienne pas grise !

    J'ai essaye tous les focnrtions (update, repaind, refrech, ....) et rien a change.

    Ma question ,est qu'on peut discativer le boutton et son apparance dans son fonction actionPerformed ?

    Merci pour toute reponse

    Bonne journée

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    actionPerformed est déjà exécuté dans l'EDT, donc ne met (surtout) pas de SwingUtilities.invokeLater(...)

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

Discussions similaires

  1. désactivé un bouton
    Par leo13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/03/2005, 11h44
  2. Désactiver le bouton "fermer fomulaire"
    Par 973thom dans le forum IHM
    Réponses: 10
    Dernier message: 03/02/2005, 20h26
  3. Griser et désactiver un bouton
    Par skea dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/01/2005, 10h45
  4. [MFC] désactiver un bouton d'un CToolBar
    Par bigboomshakala dans le forum MFC
    Réponses: 4
    Dernier message: 22/11/2004, 14h31
  5. Désactiver un bouton
    Par nd25 dans le forum Flash
    Réponses: 3
    Dernier message: 06/10/2003, 13h18

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