j'ai un dessin sur mon JPanel et je veux pouvoir le deplacer a la facon d'une icone.
est ce possible dajouter un mouseListener a un dessin ? le dessin est un rectangle banal ..
j'ai un dessin sur mon JPanel et je veux pouvoir le deplacer a la facon d'une icone.
est ce possible dajouter un mouseListener a un dessin ? le dessin est un rectangle banal ..
tu ajoutera le mouselistener au panneau.
au moment d'un clique de souris, tu test si la souris est dans ton rectangle, si oui sur un mouvement mouseDragged tu deplace le rectangle.
jessaye d'obtenir le coordonnées lorsque je clique sur MonPanel de la facon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public class MonPanel extends JPanel implements MouseListener{ CollectionEntite c; /** Creates a new instance of MonPanel */ public MonPanel(CollectionEntite c) { new BorderLayout(); this.c=c; this.setLayout(null);// On applique le layout this.setBackground(Color.lightGray);//couleur de fond this.setBorder(new EtchedBorder(50,Color.black,Color.white)); } public void paintComponent(Graphics g) { super.paintComponent(g); // Appel de la méthode paintComponent de la classe mère bla bla bla } public void mouseClicked(MouseEvent e) { System.out.println(e.getX() +" et " + e.getY()); } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } }
mais ca ne fonctionne pas ... pourquoi ?
javé oublié le this.addMouseListener(this);
oups ...![]()
bah voila maintenant je recupere le dessin a deplacer :
lorsque je clique sur mon dessin ( un tit rectangle ) je recupere l'objet associé au dessin ou je dois modifier deux champs :
- positionX
- positionY
par le meme temps j'initialise un boolean "cliké" a true pour pouvoir l'utiliser dans mon MouseDragged
seulment je n'ai jamais utiliser MouseDragged et pour linstant jai fait ceci mais ca ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public void mouseReleased(MouseEvent e) { cliké=false; } public void mouseDragged(MouseEvent e) { if (cliké==true) {//on modifie la position et on redessine l'object Ent Ent.positionX=e.getX(); Ent.positionY=e.getY(); repaint(); } } public void mouseClicked(MouseEvent e) { Point point = new Point(e.getX(),e.getY()); try { Ent = Appartient(point);// on recupere lentité sur lakel on a cliké } catch (SQLException ex) { ex.printStackTrace(); } if ( Ent!=null) { System.out.println("tu as cliké dans :"+Ent.Titre); cliké=true; } }
Partager