Salut
Je veux faire une petit application qui va afficher des circles et avec la souris on va les eliminer.J'ai presque reussi.Mais il y a un probleme.Voila la classe Circle que j'ai ecris.
Le probleme c'est que quand je clique sur un circle c'est le JPanel ou j'ai mis mes circles qui capte les clicks et on ne fait pas l'appel a la methode public void mouseClicked(MouseEvent e){...} de la classe Circle mais a celle de JPanel
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
58
59 package circles; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.geom.Ellipse2D; import javax.swing.JComponent; public class Circle extends JComponent implements MouseListener { private Ellipse2D.Float circle = null; private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public Circle() { super(); circle = new Ellipse2D.Float(); } public void mouseClicked(MouseEvent e) { setVisible(false); } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void paintComponents(Graphics g) { super.paintComponents(g); circle = new Ellipse2D.Float(x,y,20,20); Graphics2D g2d = (Graphics2D)g.create(); g2d.setColor(new Color(0,0xff,0xff)); g2d.fill(circle); g2d.draw(circle); } }![]()
Est-ce qu'il y a quelqu'un qui peut me dire comment contourner ce probleme ?
Merci d'avance
Partager