[?]Branchement d'écouteur: AciontListener

cs_Javali59 Messages postés 4 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 29 avril 2004 - 28 avril 2004 à 16:37
cs_Javali59 Messages postés 4 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 29 avril 2004 - 29 avril 2004 à 12:35
:question) Bonjour, j'ai un petit probleme!!
J'ai créé une classe MaCalcul, Dans laquelle J'affiche les bouttons necessaires pour faire des operation avec des entiers. Les boutons s'affichent normalement, mais quand j'ai voulu brancher les écouteur (j'ai commencer par un seul por tester) mais à la compilation voici le message que j'obtiens: MaCalcul is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener

Voici mon code, afin que vos puissiez m'aider:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MaCalcul implements ActionListener {

/** Declarartions des variables et des objets graphiques */

private JTextField t;
private JFrame fenetre ;
private JButton BPlus,BMoins;
private JButton BMult,BDiv;
private JButton RAZ,BDel;
private JButton BValid;
private JButton B0,B1,B2,B3,B4,B5,B6,B7,B8,B9;
private static MaCalcul g ;

/** Le constructeur de ma classe*/

public void MaCalcul1(){
this.fenetre = new JFrame("Ma Calculatrice");
this.t = new JTextField(10);
this.BPlus = new JButton("+");
this.BMoins = new JButton("-");
this.BMult = new JButton("*");
this.BDiv = new JButton("/");
this.RAZ = new JButton("RAZ");
this.BDel = new JButton("Del");
this.BValid = new JButton("Entree");
this.B0 = new JButton("0");
this.B1 = new JButton("1");
this.B2 = new JButton("2");
this.B3 = new JButton("3");
this.B4 = new JButton("4");
this.B5 = new JButton("5");
this.B6 = new JButton("6");
this.B7 = new JButton("7");
this.B8 = new JButton("8");
this.B9 = new JButton("9");

/* Récupération du contenaire & l'amenagement de la fenetre*/
fenetre.setLocation(300, 300);
fenetre.setSize(200, 200);
Container content = fenetre.getContentPane( );
// GridLayout dispo = new GridLayout(9,4);
// content.setLayout(dispo);

// Amenagement du Textfield

JPanel Saisir =new JPanel();
Saisir.setLayout(new GridLayout());
Saisir.add(this.t);

// Amenagement du bouton ENTRER
JPanel Valid = new JPanel();
Valid.setLayout(new BorderLayout() );
Valid.add(this.BValid,BorderLayout.EAST);

// Amenagement des boutons 0 à 9 & RAZ, DEL, et les opérateurs

JPanel Touch = new JPanel();
Touch.setLayout(new GridLayout(4,4));
Touch.add(this.B0);
Touch.add(this.B1);
Touch.add(this.B2);
Touch.add(this.B3);
Touch.add(this.B4);
Touch.add(this.B5);
Touch.add(this.B6);
Touch.add(this.B7);
Touch.add(this.B8);
Touch.add(this.B9);
Touch.add(this.BPlus);
Touch.add(this.BMoins);
Touch.add(this.BMult);
Touch.add(this.BDiv);
Touch.add(this.RAZ);
Touch.add(this.BDel);

//Ajout des panels dans le contenair
content.add(Saisir,BorderLayout.NORTH);
content.add(Valid,BorderLayout.EAST);
content.add(Touch,BorderLayout.CENTER);

/*Branchement des Ecouteurs*/

B1.addActionListener(new EcoutB1());

this.fenetre.pack();
this.fenetre.setVisible(true);
}

/*****************************/

public static void main(String[] args){

new MaCalcul().MaCalcul1();
}

/**********************************/
class EcoutB1 implements ActionListener{
public void ActionPerformed(ActionEvent e){
t.setText("1");
}
//}

}

Merci de m'apporter votre aide.
@+
JAVA, JAVABIEN!!

7 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
28 avril 2004 à 17:14
normal, tu fais un implements de ActioListener, mais tu ne redefini pas la methode actionPerformed....

soit tu vires ta classe EcoutB1 et tu mets
public void ActionPerformed(ActionEvent e){
t.setText("1");
}
dans ta classe MaCalcul

soit tu enleve le implements ActionListener et tu laisses EcoutB1...
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
28 avril 2004 à 17:15
ah, j'oubliais, si tu choisis la premiere solution, il faut changer

B1.addActionListener(new EcoutB1());

par

B1.addActionListener(this);

puisque ce sera maClass qui aura l'ecouteur....
0
cs_Javali59 Messages postés 4 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 29 avril 2004
28 avril 2004 à 17:24
Salut;
Au début je te remercies pour ton attention. Sinon, j'ai éssayer ce que tu m'as dis, mais hélas!!! ne fonctionne pas!! toujours pareil, esayes le et compiles le et tu verra!!
Si tu as quelque chose qui tourne fais moi signe!!
Merci encore une fois.
PS: depuis le debut d'aprem je cherche, mé sans aucun résultat!!! :sad)
JAVA, JAVABIEN!!
0
Trax63 Messages postés 5 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 30 avril 2004
28 avril 2004 à 23:30
C'est tout simple :

ce message d'erreur t'indique seulement que tu as implementé une interface (ActionListener) mais que tu n'as pas inserer la méthode :
public void actionPerformed(ActionListener ae)
dans ta classe MaCalcul, ne change rien à ton code au dessus, rajoute seulement :

public void actionPerformed(ActionListener ae)
{
}

à la fin de maClasse ou alors supprime "implements ActionListener au début de MaCalcul
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Javali59 Messages postés 4 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 29 avril 2004
28 avril 2004 à 23:41
J'ai pourtant ce morceau de code qui contient la methode ActionPerformed(ActionEvent e):
[b]
/**********************************/
class EcoutB1 implements ActionListener{
public void ActionPerformed(ActionEvent e){
t.setText("1");
}
//}
******************************[\b]

C'est donc pas normal, car ds ce morceau je lui demande d'afficher "1" dans le textField t.
???!!!

JAVA, JAVABIEN!!
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
29 avril 2004 à 08:55
Salut,
je ne sais pas si le code que tu as fait correspond à un copier/coller, mais si telle est le cas, il faut que tu saches que Java est sensible à la case (minuscule, majuscule).

ActionListener cherche dans la classe la méthode :
public void actionPerformed(ActionEvent e) ...

Or tu as mis : public void ActionPerformed...

Ce qui expliquerait ton erreur.
Voilà, en espérant que ce soit bien cela.
0
cs_Javali59 Messages postés 4 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 29 avril 2004
29 avril 2004 à 12:35
Merciiiiiiiii!!
Bien vu, tu as posé le doigt sur le problème!! c'était bien ça qui n'allait pas, j'ai juste remis "actionPeformed" au lieu de "ActionPerformed" et tout a tourner!!! ;)
Sinon, au niveau de la case je le savais, mais je n'avis pas fais attention à actionPerformed, en plus j'étais sure qu'elle était en majuscule!!! il c'est avéré que non.
Thanks à tt le monde
JAVA, JAVABIEN!!
0
Rejoignez-nous