Evènement MouseMoved

punkybreizh Messages postés 20 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 12 novembre 2007 - 27 oct. 2005 à 21:39
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 - 29 oct. 2005 à 15:30
Bonjours à tous,



J'ai crée une class principale avec plusieurs composants dont un
JTextField qui doit récupérer les coordonnées de la souris lorsque
cette dernière survole un imagecomponent se trouvant dans un
jtabbedpane.



voilà le code source du ImageComponent :





import javax.swing.*;

import javax.swing.event.MouseInputAdapter;

import java.awt.*;

import java.awt.event.MouseEvent;

import java.net.URL;

import java.net.MalformedURLException;



public class ImageComponent extends JComponent{



private Image theImage;

private int zoom;

private int theImageW;

private int theImageH;





public Image getImage(){

return theImage;

}

public void setZoom(int z)

{

zoom=z;

repaint();

}

public int getZoom()

{

return zoom;

}



public ImageComponent(Image anImage) {

theImage = anImage;

theImageW=theImage.getWidth(null);

theImageH=theImage.getHeight(null);

}



public Dimension getPreferredSize() {

return new Dimension(theImage.getWidth(null)*zoom/100, theImage.getHeight(null)*zoom/100);

}



protected void paintComponent(Graphics g) {

super.paintComponent(g);


this.setSize(theImageW/100*zoom,theImageH/100*zoom);

g.drawImage(theImage, 0, 0,theImageW/100*zoom,theImageH/100*zoom, null);

}

}



Pour les évènement de la souris il faudrait que j'implémente cette
classe avec un MouseMotionListener et que dans cette classe je fasse :



public void mouseDragged(MouseEvent e) {}

public void mouseMoved(MouseEvent e) {}



mais ke dois-je mettre dans public void mouseMoved(MouseEvent e) {}
pour récupérer la position de la souris et ensuite dans la classe
principale mettre ces coordonnées dans le JtextField



J'espère que j'ai été clair. Merci d'avance.

5 réponses

scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
27 oct. 2005 à 22:02
salut,
tu peux faire :
Point location = MouseInfo.getPointerInfo().getLocation();
et puis tu récupère les coordonnées x et y que tu affiches dans ton JTextField
voila
a++
0
punkybreizh Messages postés 20 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 12 novembre 2007
27 oct. 2005 à 22:04
Il faut ke je mette ton code dans public void mouseMoved(MouseEvent e) {} ?
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
28 oct. 2005 à 10:37
oui c'est ça
il faut aussi ajouter un MouseMotionListener à ton objet à surveiller
voila
a++
0
punkybreizh Messages postés 20 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 12 novembre 2007
28 oct. 2005 à 14:46
J'ai insérer ton code mais j'ai un soucis, il ne reconnait pas MouseInfo meme quand je fais les import nécéssaires



Sinon j'ai voulu faire dans la fonction MouseMoved :



x=e.getX();

y=e.getY();



Mais je ne sais pas comment retourner ces valeurs pour les mettre ensuite dans le jtextField.
0

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

Posez votre question
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
29 oct. 2005 à 15:30
salut
si Java ne reconnait pas MouseIfo c'est peut-être que tu n'as pas la version 1.5
et pour ta façon de procéder je n'y avais pas pensé mais je suppose que ca marche
pour insérer ces valeurs dans ton JTextField tu n'as qu'a déclarer celui-ci comme objet global à ta classe et puis à faire
tonJTextFiled.setText("" + e + " " + y);
voila
a++
0
Rejoignez-nous