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

 Java Discussion :

Jbutton et ActionListener


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut Jbutton et ActionListener
    Bonjour,

    Je tente d'utiliser la méthode 3 du tutorial sur les ActionListener. Cependant, je n'arrive pas a récupérer l'action. Voici les classes en question :
    ButtonListener.java : ma classe qui traite les actions
    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
     
     
    package viewer;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    class ButtonListener implements ActionListener {
     
        ButtonListener() {
        }
     
        public void actionPerformed(ActionEvent e) {
            if (e.getActionCommand().equals("up")) {
                System.out.println("JButtonUp has been clicked");
            }
            if (e.getActionCommand().equals("down")) {
                System.out.println("JButtonDown has been clicked");
            }
        }
    }
    JPanelControl.java : ma class qui créer mon JPanel avec tout mes boutons :
    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
     
    package viewer;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionListener;
    import javax.swing.*;
     
     
    public class JPanelControl extends JPanel implements ViewerConstants {
        public JPanelControl() {
            JButtonUp = new JButtonPan("up");
            JButtonUp.addActionListener(new ButtonListener());
     
            JButtonDown = new JButtonPan("down");
            JButtonDown.addActionListener(new ButtonListener());
    ...
    }
        private JButtonPan JButtonUp;
        private JButtonPan JButtonDown;
    }
    JbuttonPan.java
    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
    package viewer;
    import javax.swing.JButton;
    public class JButtonPan extends JButton {
        public JButtonPan(String icon){
     
            this.setIcon(new javax.swing.ImageIcon(getClass().getResource("../pics/".concat(icon).concat(".png")))); // NOI18N
            this.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
            this.setMaximumSize(new java.awt.Dimension(20, 20));
            this.setMinimumSize(new java.awt.Dimension(20, 20));
            this.setPreferredSize(new java.awt.Dimension(20, 20));
            this.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("../pics/".concat(icon).concat("p.png")))); // NOI18N
            this.setSelected(true);
     
        }
     
    }
    Lorsque je clique sur les boutons, je n'ai aucunes sorties dans ma console.

    Je sais que cette question a sûrement été traité mainte et mainte fois, cependant, j'ai tenté plusieurs méthodes pour récupérer le clique mais aucunes ne fonctionnent. J'ai tenté d'utiliser le debuger de NetBeans mais sans succès.

    Toutes documentations, bouts de code, liens sont les bienvenues ! Merci

  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,

    l'actioncommand d'un bouton, c'est le texte que tu passes au constructeur de JButton quand tu le crée, ou bien tu peux aussi le modifier avec la méthode setActionCommand, donc mets le code dans lequel tu crée le bouton pour voir le texte que tu lui passes

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Citation Envoyé par herch Voir le message
    salut,

    l'actioncommand d'un bouton, c'est le texte que tu passes au constructeur de JButton quand tu le crée, ou bien tu peux aussi le modifier avec la méthode setActionCommand, donc mets le code dans lequel tu crée le bouton pour voir le texte que tu lui passes
    Merci, maintenant que tu le dits, ça me parait un peu évident vue que je compare des string dans actionPerformed.

    J'ai mis à jour le code dans mon premier post. Cependant, le problème persiste !

    EDIT :

    J'ai également essayé ceci dans le constructeur de mes JButton mais rien..:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.addActionListener(new ButtonListener());
    EDIT2 : histoire d'avoir quelque chose de verbeux, j'ai ajouté un System.out.println(icon); dans le constructeur de mes boutons. Cependant, rien ne s'affiche dans la console de Netbeans ! J'utilise pourtant un System.out.println dans une autre partie du programme et celui-ci s'affiche...

  4. #4
    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,

    le String que tu passes à ton bouton c'est le chemin d'une image, et tu utilises le constructeur qui attends un objet Icon et pas celui qui attends un String

    il faudra que tu définis l'actioncommand avec la méthode setActionCommand
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JButtonUp.setActionCommand("up");
     
    JButtonDown.setActionCommand("down");

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Citation Envoyé par herch Voir le message
    salut,

    le String que tu passes à ton bouton c'est le chemin d'une image, et tu utilises le constructeur qui attends un objet Icon et pas celui qui attends un String

    il faudra que tu définis l'actioncommand avec la méthode setActionCommand
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JButtonUp.setActionCommand("up");
     
    JButtonDown.setActionCommand("down");
    J'ai ajouté ceci à mon constructeur JButtonPan (où icon est bien un String passé en argument de JButtonPan(String icon)):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setActionCommand(icon);
    Mais toujours rien..

    cependant, il ce peut que le problème vienne également d'ailleurs ; cf mon EDIT2 de mon second post :
    histoire d'avoir quelque chose de verbeux, j'ai ajouté un System.out.println(icon); dans le constructeur de mes boutons. Cependant, rien ne s'affiche dans la console de Netbeans ! J'utilise pourtant un System.out.println dans une autre partie du programme et celui-ci s'affiche...

  6. #6
    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
    un coup au hasard
    mets un au début du constructeur de ton bouton

    mais sinon je ne vois d'où peut venir le problème

    [EDIT]

    le problème ne vient pas de super(), en fait, il y a aucun problème. Je viens de tester ton code, et ça marche chez moi

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

Discussions similaires

  1. JButton et ActionListener
    Par tanguy.L dans le forum Composants
    Réponses: 6
    Dernier message: 27/04/2008, 16h15
  2. Question sur des JButton et ActionListener
    Par DrTank dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/05/2007, 16h10
  3. Problème gestion actionListener pour JButton
    Par cedricbr dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/05/2006, 16h39
  4. JButton et Actionlistener
    Par Zobbiwan dans le forum Composants
    Réponses: 3
    Dernier message: 16/12/2005, 00h28
  5. [débutant][swing][JButton][ActionListener]
    Par cmoa59 dans le forum Composants
    Réponses: 6
    Dernier message: 25/05/2005, 15h19

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