Bonjour.
Je suis en train de faire un outil de sélection a la souris sur mon panel.
voici mon code :
Vous remarquerez que ma méthode repaint() est appelée sur mon MouseDragged() qui appelle repaint() (effacement de la figure précedemment dessinée) pui appelle la méthode dessine.
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
45
46
47
48
49
50
51
52
53
54 public void mousePressed(MouseEvent e){ //recup coordonnées point de départ startX = (int)e.getPoint().getX(); startY = (int)e.getPoint().getY(); } public void mouseReleased(MouseEvent e){ stopX = (int)e.getPoint().getX(); stopY = (int)e.getPoint().getY(); dessine(panel.getGraphics()); } public void mouseDragged(MouseEvent e) { stopX = (int)e.getPoint().getX(); stopY = (int)e.getPoint().getY(); repaint(); dessine(panel.getGraphics()); } public void dessine(Graphics g) { //dessin : bas-gauche vers haut-droit if(startX < stopX && startY > stopY){ largeur = stopX-startX; hauteur = startY-stopY; g.drawRect(startX, stopY, largeur, hauteur); } //dessin : haut-gauche vers bas-droit if(startX < stopX && startY < stopY){ largeur = stopX-startX; hauteur = stopY-startY; g.drawRect(startX, startY, largeur, hauteur); } //dessin : bas-droit vers haut-gauche if(startX > stopX && startY > stopY){ largeur = startX-stopX; hauteur = startY-stopY; g.drawRect(stopX, stopY, largeur, hauteur); } //dessin : haut-droit vers bas-gauche if(startX > stopX && startY < stopY){ largeur = startX-stopX; hauteur = stopY-startY; g.drawRect(stopX, startY, largeur, hauteur); } }
Mais j'ai un probleme:
Le dessin se passe tres bien (de maniere dynamique) : pendant le déplacement de ma souris, la figure précédente s'efface et la nouvelle se redéssine. Le nerf du probleme est que lorsque j'arrete de déplacer ma souris, l'image disparait (comme si un evenement on "MouseStopMoving" appelait une methode repaint).
D'ou ca vient svp ?
Partager