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 :

Swing : ActionEvent


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut Swing : ActionEvent
    Bonjour je débute dans la programmation swing et j'ai un pb avec les ActionEvent.
    J'ai un listener sur un bouton et lorsque je clic sur ce dernier, il me fait l'action plusieurs fois. Est ce que quelqu'un peut m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    JButton b1 = new JButton ("b1");
    b1.addActionListener((ActionListener) this);
    ...
     
    if(b1.isSelected())
    {
       //Ici il fait plusieurs fois le traitement
    }

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Par défaut
    Avec ton code ta classe doit implementer ActionListener et doit donc avoir la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void actionPerformed(ActionEvent e){
    // Action quand le boutton est cliqué
    }
    C'est elle qui est appellé quand on clique sur le boutton, pas besoin de d'utiliser if(b1.isSelected()) ...

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    Bonjour,

    c'est ce que je fais. Mais l'action est exécutée plusieurs fois comme meme.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    tu veux dire que ton code s'est ca ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class MyClass extends ActionListener {
      public void init() {
        JButton b1 = new JButton ("b1");
        b1.addActionListener((ActionListener) this);
        ...
      }
      public void actionPerformed(ActionEvent e){
        // Action quand le boutton est cliqué
        System.out.println("CLICK SUR LE BOUTON");
      }
    }
    }
    car si oui, un click ne devrait 'apparaitre' qu'une fois -> via l'affichage de "CLICK SUR LE BOUTON"
    donc je ne comprens pas vraiment, peut etre devrai tu nous mettre plus de code...

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    Bonjour,

    c'est exactement ça.
    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
     
    public class Service implements ActionListener
    {
      private JCheckBox all = new JCheckBox("all");
      private JButton b1 = new JButton ("b1");
     
      public void init() {
     
        all.addaddActionListener((ActionListener) this);
        b1.addActionListener((ActionListener) this);
        ...
      }
      public void actionPerformed(ActionEvent e){
        //Je récupère la valeur de mon JcheckBox
        if(this.all.isSelected() && this.b1.isSelected())
        {
            // Action quand le boutton est cliqué
        System.out.println("CLICK SUR LE BOUTON");
      }
     
    }

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    Oups !!!
    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
     
    public class Service implements ActionListener
    {
      private JCheckBox all = new JCheckBox("all");
      private JButton b1 = new JButton ("b1");
     
      public void init() {
     
        all.addaddActionListener((ActionListener) this);
        b1.addActionListener((ActionListener) this);
        ...
      }
      public void actionPerformed(ActionEvent e){
        //Je récupère la valeur de mon JcheckBox
        if(this.all.isSelected() && this.b1.isSelected())
        {
            // Action quand le boutton est cliqué
           System.out.println("CLICK SUR LE BOUTON");
        }
     }
    }

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    juste une question...
    toi tu veux récupérer l'action sur ton bouton, et si on clique dessus on regarde si la checkBox est sélectionné, si oui on fait tes instructions, c'est ca ?

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    Oui c'est ca. En fait je ne doit executer l'action du bouton que lorsque la ckeckBox est séléctionné. Du coup j'ai cette répétition. Le traitement est fait c'est juste ca fait appel a une base de données et comme c'est répété ca met du temps pour l'affichage.

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    Oups !!!
    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
     
    public class Service implements ActionListener
    {
      private JCheckBox all = new JCheckBox("all");
      private JButton b1 = new JButton ("b1");
     
      public void init() {
     
        all.addaddActionListener((ActionListener) this);
        b1.addActionListener((ActionListener) this);
        ...
      }
      public void actionPerformed(ActionEvent e){
        //Je récupère la valeur de mon JcheckBox
        if(this.all.isSelected() && this.b1.isSelected())
        {
            // Action quand le boutton est cliqué
           System.out.println("CLICK SUR LE BOUTON");
        }
     }
    }
    C'est peut etre le fait d'avoir un listener pour plusieurs actions non ???

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

Discussions similaires

  1. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  2. swing et jbuilder
    Par lassale dans le forum JBuilder
    Réponses: 3
    Dernier message: 31/10/2003, 19h28
  3. [swing] probleme de memoire
    Par leBigouden dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 23/05/2003, 14h19
  4. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 14h51
  5. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35

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