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 :

Probleme évènement, aucune interaction !


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Probleme évènement, aucune interaction !
    Bonjour à tous ,

    Je suis tout nouveau sur le forum, je débute en java et j'ai un souci depuis 1 semaine.

    Ce code ne fonctionne pas comme je l'espère :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    import java.awt.*;
    import javax.swing.*;
     
    public class Calculatriceperso  {
     
        Calculatriceperso() {
     
            JPanel contenufenetre = new JPanel();
            BorderLayout disposition1 = new BorderLayout();
            contenufenetre.setLayout(disposition1);
            //
            JPanel chiffres = new JPanel();
            GridLayout disposition2 = new GridLayout(4,2);
            chiffres.setLayout(disposition2);
            //
            JPanel panneauOpérations = new JPanel();
            GridLayout disposition3 = new GridLayout(4,1);
            panneauOpérations.setLayout(disposition3);
     
            JTextField texte = new JTextField();
     
            JButton boutonvirgule = new JButton(",");
            JButton boutondivise = new JButton("/");
            JButton boutonfois = new JButton("*");
            JButton boutonmoins = new JButton("-");
            JButton boutonplus = new JButton("+");
            JButton boutonegale = new JButton("=");
            JButton[] boutonchiffres = new JButton[10];
            for(int i=0;i<10;i=i+1){
                boutonchiffres[i] = new JButton(" "+i);        
                chiffres.add(boutonchiffres[i]);
            }
     
            panneauOpérations.add(boutonvirgule);
            panneauOpérations.add(boutonfois);
            panneauOpérations.add(boutondivise);
            panneauOpérations.add(boutonmoins);
            panneauOpérations.add(boutonplus);
            panneauOpérations.add(boutonegale);
     
            contenufenetre.add("Center",chiffres);
            contenufenetre.add("East",panneauOpérations);
            contenufenetre.add("North",texte);
     
            JFrame cadre = new JFrame("Calculatrice personnelle de luxe");
            cadre.setContentPane(contenufenetre);
            cadre.setVisible(true);
            cadre.pack();
     
            MoteurCalcul moteurdecalcul = new MoteurCalcul();
            boutonchiffres[0].addActionListener(moteurdecalcul);
        }
     
        public static void main(String[] args){
     
             new Calculatriceperso();
        }
    }
    ma seconde classe :

    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
    import java.awt.event.*;
    import javax.swing.*;
     
    public class MoteurCalcul implements ActionListener {
     
      public void actionPerformed(ActionEvent evt) {
     
        // Retrouve la source de l'action
        JButton boutonCliqué = (JButton) evt.getSource();
        // Retrouve le libellé du bouton
        String libelléBoutonCliqué = boutonCliqué.getText();
        // Concatène le libellé du bouton au texte de la boîte de message
        JOptionPane.showConfirmDialog(null, "Tu as appuyé sur " + libelléBoutonCliqué, "Juste un test", JOptionPane.PLAIN_MESSAGE);
      }
    }


    Donc pour être précis, ce code est censé exécuter actionPerformed à l'appel de l'interface qui l'implémente, actionListener. Or, il ne se passe strictement rien.

    J'ai testé avec l'interface actionMouseListener mais rien n'y fait même problème plutot ennuyeux.

    c'est comme ça sur mes trois pc !
    Je suis sous Ubuntu 9.04 avec Eclipse.

    Je vous remercie d'avance.

    Merci de votre aide

    Erol.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 279
    Points
    279
    Par défaut
    Ton code est sensé fonctionner.

    Par contre fais attention avec les é et autres accents dans les noms de variable sous linux ça peut poser problème.

    sinon ton code ne devrait fonctionner que si tu clique sur le bouton 0 étant donné que tu n'y a ajouté le listener que sur ce même bouton.

    tu peux remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boutonchiffres[0].addActionListener(moteurdecalcul);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (JButton b : boutonchiffres) {
        b.addActionListener(moteurdecalcul);
    }
    De cette manière tu aura des listener sur tous tes boutons de chiffres.

    Mais évite vraiment les accents dans les noms de variable tu risque d'avoir des problèmes.

    Le code final ressemblerait à ç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
    import java.awt.event.*;
    import javax.swing.*;
     
    public class MoteurCalcul implements ActionListener {
     
      public void actionPerformed(ActionEvent evt) {
     
        // Retrouve la source de l'action
        JButton boutonClique = (JButton) evt.getSource();
        // Retrouve le libellé du bouton
        String libelleBoutonClique = boutonClique.getText();
        // Concatène le libellé du bouton au texte de la boîte de message
        JOptionPane.showConfirmDialog(null, "Tu as appuyé sur " + libelleBoutonClique, "Juste un test", JOptionPane.PLAIN_MESSAGE);
      }
    }
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    import java.awt.*;
    import javax.swing.*;
     
    public class Calculatriceperso  {
     
        Calculatriceperso() {
     
            JPanel contenufenetre = new JPanel();
            BorderLayout disposition1 = new BorderLayout();
            contenufenetre.setLayout(disposition1);
            //
            JPanel chiffres = new JPanel();
            GridLayout disposition2 = new GridLayout(4,2);
            chiffres.setLayout(disposition2);
            //
            JPanel panneauOperations = new JPanel();
            GridLayout disposition3 = new GridLayout(4,1);
            panneauOperations.setLayout(disposition3);
     
            JTextField texte = new JTextField();
     
            JButton boutonvirgule = new JButton(",");
            JButton boutondivise = new JButton("/");
            JButton boutonfois = new JButton("*");
            JButton boutonmoins = new JButton("-");
            JButton boutonplus = new JButton("+");
            JButton boutonegale = new JButton("=");
            JButton[] boutonchiffres = new JButton[10];
            for(int i=0;i<10;i=i+1){
                boutonchiffres[i] = new JButton(" "+i);        
                chiffres.add(boutonchiffres[i]);
            }
     
            panneauOperations.add(boutonvirgule);
            panneauOperations.add(boutonfois);
            panneauOperations.add(boutondivise);
            panneauOperations.add(boutonmoins);
            panneauOperations.add(boutonplus);
            panneauOperations.add(boutonegale);
     
            contenufenetre.add("Center",chiffres);
            contenufenetre.add("East",panneauOperations);
            contenufenetre.add("North",texte);
     
            JFrame cadre = new JFrame("Calculatrice personnelle de luxe");
            cadre.setContentPane(contenufenetre);
            cadre.setVisible(true);
            cadre.pack();
     
            MoteurCalcul moteurdecalcul = new MoteurCalcul();
            for (JButton b : boutonchiffres) {
                b.addActionListener(moteurdecalcul);
            }
        }
     
        public static void main(String[] args){
     
             new Calculatriceperso();
        }
    }

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par demonia Voir le message
    Par contre fais attention avec les é et autres accents dans les noms de variable sous linux ça peut poser problème.
    Il n'y a pas de raison que ca pose plus de problème que les accents dans les strings. Ni que ça pose plus de problème sous linux que sous windows ou mac os x. C'est autorisé en java.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Sous Windows Xp pro ca fonctionne parfaitement . étonnant que sous Ubuntu j'ai des soucis .

    merci pour le petit conseil des é,è,ç et autres.

    ++ je vais continuer a chercher.

Discussions similaires

  1. [AC-2000] Probleme événement Aprés Mise à jour
    Par gueguenk dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/07/2009, 11h22
  2. Probleme avec aucun resultat pas de message
    Par jarod6827 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/06/2009, 16h02
  3. Réponses: 3
    Dernier message: 14/10/2007, 20h45
  4. probleme (événementS) exporter en .jar
    Par cterra dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 30/08/2006, 21h28
  5. [HTML] Probleme avec les événement OnChange et OnClick
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 04/05/2005, 16h06

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