Debutant java ...

Résolu
Signaler
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
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

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
Salut,

Tu as fait une faute d'orthographe dans la méthode mouseCliked, il manque le c : mouseClicked.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
Et je te conseil de télécharger éclipse ou équivalent car travailler sans ide n'est pas une chose simple.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
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+
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

... 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 ;)
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
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.