Debutant java ...

Résolu
StayCrunchy Messages postés 43 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 26 février 2014 - 27 oct. 2012 à 16:44
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 oct. 2012 à 11:39
Bonjour,
Je me tourne vers vous car j'ai un probleme. Je ne comprend pas pourquoi le code qui va suivre (recopié depuis mon bouquin "Programmer en Java") ne veut pas fonctionner comme il devrait ( toujours selon le bouquin ).

import javax.swing.*;
import java.awt.event.*;

class MaFenetre extends JFrame implements MouseListener
{
public MaFenetre()
{
setTitle("Essai fenetre 1");
setBounds(20,20,200,150);
addMouseListener(this);
}

public void mouseCliked(MouseEvent ev)
{
int x = ev.getX();
int y = ev.getY();
System.out.println("Clic dans la fenetre au point : (" + x + ", " + y + ").");
}

public void mousePressed(MouseEvent ev) {}
public void mouseReleased(MouseEvent ev) {}
public void mouseEntered(MouseEvent ev) {}
public void mouseExited(MouseEvent ev) {}
}

public class TestF
{
public static void main(String [] args)
{
MaFenetre fenetre = new MaFenetre();
fenetre.setVisible(true);
}
}


pour compiler je tape dans la console :
javac TestF.java


Pour finalement obtenir :
TestF.java:4: MaFenetre is not abstract and does not override abstract method mouseClicked(java.awt.event.MouseEvent) in java.awt.event.MouseListener
class MaFenetre extends JFrame implements MouseListener
^
1 error


Normalement une petite fenêtre devrait s'ouvrir et la console afficher un message à chaque clic.

Je débute en Java, donc soyez indulgents ;)
Merci

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
27 oct. 2012 à 22:20
Salut,

Tu as fait une faute d'orthographe dans la méthode mouseCliked, il manque le c : mouseClicked.
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
27 oct. 2012 à 22:21
Et je te conseil de télécharger éclipse ou équivalent car travailler sans ide n'est pas une chose simple.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
27 oct. 2012 à 22:23
Et pour finir, j'avais trouvé que le livre "Programmer en Java" n'étais pas extraordinaire, les méthodes proposées fonctionnent le le code marche mais, la conception est souvent mauvaise et le code est bourré de maladresses.

Par exemple, dans ton cas, l'implémentation des mouseListener ne se fait pas dans la classe mais sur les JButton, ce n'est pas une erreur de le faire sur la même classe, mais cela correspond à une façon de programmer assez ancienne, depuis le package swing s'est étoffé et tu peux faire des choses plus propres.

Enfin, bon courage tout de même.
a+
0
StayCrunchy Messages postés 43 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 26 février 2014
27 oct. 2012 à 23:30
... moi qui m'étais pourtant relu plusieurs fois, je suis passé à coté de cette erreur !
Je vais faire comme tu as dis. Je vais prendre Eclipse car je pense que ça doit signaler ce genre d'erreur toute bête.

Désolé d'avoir encombré le forum pour si peu.

Merci ;)
0

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

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 oct. 2012 à 11:39
Eclipse ne gère pas ce genre de problème, il faut que tu utilises l'annotation @Override (si tu es au moins en java1.6) pour lui dire que tu surcharge une méthode existante dans la classe mère.
0
Rejoignez-nous