StayCrunchy
Messages postés43Date d'inscriptionmercredi 24 novembre 2010StatutMembreDernière intervention26 février 2014
-
27 oct. 2012 à 16:44
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 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.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 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.
StayCrunchy
Messages postés43Date d'inscriptionmercredi 24 novembre 2010StatutMembreDernière intervention26 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 ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 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.