Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2114 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  implements MouseListener

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

implements MouseListener

n°939585
MansTrop
Posté le 06-01-2005 à 19:08:53  profilanswer
 

Bonjour,
 
Je fais des petits prog pour apprendre, et la j'aimerais combiné la position de la souris (ca marche), mais je ne sais pas trop comment ajouté le nombre de click, ca marche une fois et apres ca bug, et je ne trouve ca pas tres elegant.
Un petit conseil de technique ou autre serait sympa, merci
 

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class Evenements extends JFrame {
  5. private JPanel surface = new JPanel();
  6. private Coordonnees coordonnees = new Coordonnees();
  7. private Click click = new Click();
  8. private int a= 0;
  9. public static void main (String args[]) {
  10.  new Evenements().show();
  11. }
  12. public Evenements(){
  13.  setTitle("Click clack !! oups" );
  14.  setSize(300,300);
  15.  surface.setBackground(Color.blue);
  16.  getContentPane().add(click, BorderLayout.EAST);
  17.  getContentPane().add(surface, BorderLayout.CENTER);
  18.  getContentPane().add(coordonnees, BorderLayout.SOUTH);
  19.  surface.addMouseListener(coordonnees);
  20.  surface.addMouseListener(click);
  21.  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22. }
  23. }
  24. class Coordonnees extends JLabel implements MouseListener {
  25. public Coordonnees() {
  26.  super("Coordonnees de la souris" );
  27. }
  28. public void mouseClicked (MouseEvent e) {
  29.  setText("Coordonnees de la souris "+"("+e.getX() + ", "+e.getY()+')');
  30. }
  31. public void mouseEntered (MouseEvent e) {}
  32. public void mouseExited (MouseEvent e) {}
  33. public void mousePressed (MouseEvent e) {}
  34. public void mouseReleased (MouseEvent e) {}
  35. }
  36. class Click extends JLabel implements MouseListener {
  37. public Click() {
  38.  super("Nombre de click appui" );
  39. }
  40. public void mouseClicked (MouseEvent e) {}
  41. public void mouseEntered (MouseEvent e) { }
  42. public void mouseExited (MouseEvent e) {}
  43. public void mousePressed (MouseEvent e) {
  44.  a += e.getClickCount();
  45.  setText("Nombre de click appui "+a);
  46. }
  47. public void mouseReleased (MouseEvent e) {}
  48. }

mood
Publicité
Posté le 06-01-2005 à 19:08:53  profilanswer
 

n°939589
therier
heu...coucou!
Posté le 06-01-2005 à 19:18:44  profilanswer
 

A vu de pif, ça m'etonnerais que ça marche car dans ta classe click tu t'adresse à une variable a qui n'est pas 'visible' depuis click...
 
Dans un premier temps, je te conseil d'implementer tes listener en classe anonyme, c'est à dire :
 
 
 

Code :
  1. truc.addMouseListener(new MouseAdapter(){
  2.   public void mouseClicked(MouseEvent e){
  3.     //Ici tu as accés à tout les élément globaux de la classe dans  
  4.     //   laquelle tu est implémenté
  5.   }
  6. });


 
 
 
Je sais pas si je suis clair pour toi... Ah oui! le mouse adapter ça sert à eviter d'avoir à ecrire des corps de methode vides.

n°939621
MansTrop
Posté le 06-01-2005 à 20:04:01  profilanswer
 

Wouahhhh c coool ! ca avance, et c plus propre ce mouse adapter !
Mais j'ai perdu la position de la souris, je ne comprends pas trop j'ai pas changé cette partie du code (qui est d'ailleurs comme celle ce click et click2), et ca marche plus !! :??:  
 

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class Evenements2 extends JFrame {
  5. private int a= 0;
  6. private int b= 0;
  7. private JPanel surface = new JPanel();
  8. private JLabel coordonnees = new JLabel ("Coordonnees de la souris" );
  9. private JLabel click = new JLabel ("Click de la souris pressed" );
  10. private JLabel click2 = new JLabel ("Click de la souris released" );
  11. public static void main (String args[]) {
  12.  new Evenements2().show();
  13. }
  14. public Evenements2 () {
  15.  setTitle("Click click !!" );
  16.  setSize(300,300);
  17.  surface.setBackground(Color.blue);
  18.  getContentPane().add(click, BorderLayout.NORTH);
  19.  getContentPane().add(click2, BorderLayout.EAST);
  20.  getContentPane().add(surface, BorderLayout.CENTER);
  21.  getContentPane().add(coordonnees, BorderLayout.SOUTH);
  22.  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.  surface.addMouseListener(new MouseAdapter(){
  24.   public void mouseCliked (MouseEvent e) {
  25.    coordonnees.setText("("+e.getX() + ", "+e.getY()+')');
  26.   }
  27.   public void mousePressed (MouseEvent e) {
  28.    a += e.getClickCount();
  29.    click.setText("Nombre de click pressed "+a);
  30.   }
  31.   public void mouseReleased (MouseEvent e) {
  32.    b += e.getClickCount();
  33.    click2.setText("Nombre de click released "+b);
  34.   }
  35.  });
  36. }
  37. }


n°939649
phnatomass
Je m'empare de ton esprit !!
Posté le 06-01-2005 à 21:25:08  profilanswer
 

public void mouseClicked (MouseEvent e) ...
Il y a au moins un avantage en tout cas avec les interfaces c'est que lorsque l'on faite une faute sur l'orthographe d'une méthode ça ne compile pas.

n°939699
MansTrop
Posté le 06-01-2005 à 22:43:38  profilanswer
 

Et si le pire c'est que ca passait à la compilation !
 
merci en tout cas !!

n°939700
the real m​oins moins
Posté le 06-01-2005 à 22:44:39  profilanswer
 

MansTrop a écrit :

Et si le pire c'est que ca passait à la compilation !


mais oui mais oui [:trofub]


Message édité par the real moins moins le 06-01-2005 à 22:44:45

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°939711
MansTrop
Posté le 06-01-2005 à 22:52:59  profilanswer
 

Je ne suis pas encore un vieux sage qui fume la pipe, mais en tout cas je ne suis pas de mauvaise foi. (fais le test, tu verras).
Mais je remercie encore votre aide à tous.
J'apprends et j'apprends toujours plus...

n°939730
benou
Posté le 06-01-2005 à 23:03:11  profilanswer
 


bha oui ca passait si il héritait de l'adapter :o


---------------
ma vie, mon oeuvre - HomePlayer
n°939736
the real m​oins moins
Posté le 06-01-2005 à 23:07:54  profilanswer
 

ha oui, tout juste auguste [:slackerbitch]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°939818
phnatomass
Je m'empare de ton esprit !!
Posté le 07-01-2005 à 08:32:54  profilanswer
 

C'est pour cela que j'ai signalé qu'avec une interface cela n'aurait pas compilé.

mood
Publicité
Posté le 07-01-2005 à 08:32:54  profilanswer
 

n°939894
therier
heu...coucou!
Posté le 07-01-2005 à 10:15:28  profilanswer
 

phnatomass a écrit :

C'est pour cela que j'ai signalé qu'avec une interface cela n'aurait pas compilé.


 
Yep c'est vrai mais c'est un tout petit peu chiant d'heriter de toutes les methodes...quoique dans cet exemple vu que tu utilises pas mal des methodes tu aurais pu le faire... :D  

n°940628
Jubijub
Parce que je le VD bien
Posté le 07-01-2005 à 19:28:26  profilanswer
 

ben tu coches le inherit abstract methods, et ca te fout les stubs tout seul ...


---------------
Jubi Photos : Flickr - 500px

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  implements MouseListener

 

Sujets relatifs
comment gerer un evnmt sur bouton sans implemente MouseListener?mouselistener ou pas
Problème video + mouselistenerimplements Runnable ??
[MouseListener] gestion trop précise...[Java] Bizarerie du MouseListener
MouseListener - Java 
Plus de sujets relatifs à : implements MouseListener


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)