Bien le bonsoir,
Je souhaite que le dessin effectué par la méthode fillOval() suive mon curseur peu importe où il se balade (dans la limite du raisonnable).
Après avoir mis quelques system.out.println() a des endroits stratégiques, j'apprends donc que les opérations s'effectuent correctement, mais le cercle ne se redessine pas autour de mon pointeur...
Voici le code de la classe qui écoute:
Le panel qui est écouté:
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
55
56
57 import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JPanel; public class Calculateur implements MouseMotionListener{ private int mX; private int mY; private int balle_y; private int balle_x; public Calculateur(JPanel panel){ //Composant sur lequel se rattache la classe } @Override public void mouseDragged(MouseEvent e) { // } @Override public void mouseMoved(MouseEvent e) { setX(e.getX()); setY(e.getY()); deplacementBalle(); } private void deplacementBalle(){ if(mX != balle_x){ while(mX > balle_x){ balle_x++; } while(mY > balle_y){ balle_y++; } while(mX < balle_x){ balle_x--; } while(mY < balle_y){ balle_y--; } } System.out.println("X: "+balle_x+"\n" +" Y: "+balle_y); new Panel().positionnerBalle(balle_x, balle_y); } public void setX(int mX){ this.mX = mX; } public void setY(int mY){ this.mY = mY; } }
Vous m'excuserez, je n'ai rien trouvé de similaire dans la FAQ ou même dans les topics du forum.
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 import java.awt.Color; import java.awt.Graphics; import javax.swing.JPanel; public class Panel extends JPanel{ private Calculateur moteur; private int balle_x; private int balle_y; public Panel(){ moteur = new Calculateur(this); setSize(400, 400); addMouseMotionListener(moteur); } public void paintComponent(Graphics g){ super.paintComponents(g); g.setColor(Color.GREEN); g.fillRect(0, 0, 400, 400); g.setColor(Color.BLUE); g.fillOval(balle_x, balle_y, 50, 50); } public void positionnerBalle(int x, int y){ this.balle_x = x; this.balle_y = y; repaint(); } }
Je vous remercie d'avance pour vos réponses,
Cordialement,
Songbird.
PS: Ces deux classes sont bien évidemment implémenter dans une JFrame avec le setContentPane() et addMouseMotionListener() qui vont bien.
Partager