Bonjour,
J'ai une fenêtre de dessin qui consiste en un JPanel sur lequel sont dessinés quatre objet Point contenus dans un ArrayList (Point étant une classe interne de ma classe principale, qui hérite de JPanel). A partir des ces 4 points j'ai tracé deux droites et une spline. Mon problème : cliquer sur un point et le déplacer, tout en mettant à jour le graphique.
Voici un bout de mon code :
Le problème : le point sélectionné ne se déplace que de 4 ou 5 pixels, et la droite et la courbe sont dédoublées.
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 public void mousePressed(MouseEvent e) { for (Point p : points) { // On cherche le point dont les coordonées sont situées près du clic if (((e.getX() > p.x - 5 && e.getX() < p.x + 5) && (e.getY() > p.y - 5 && e.getY() < p.y + 5))) { On attribue à un Point current les coordonnées de ce point current = new Point(p.x, p.y, p.c); } } } public void mouseDragged(MouseEvent e) { if (current != null) { for (Point p : points) { if ((current.x == p.x ) && (current.y == p.y)) { p.x = e.getX(); p.y = e.getY(); p.c = current.c; } } this.repaint(); } } public void mouseReleased(MouseEvent e) { current = null; }
NB: la classe Point interne est une contrainte de l'exercice.
Merci d'avance pour votre aide.
Partager