Bonjour,
j'essaie de faire un jeu en java.
Je créé les cases en utilisant des GeneralPath pour faire des hexagones.
Je voudrais utiliser un MouseListener pour faire 3 choses :
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.geom.*; import java.awt.image.*; public class poly extends JPanel { int[][] coordonnees(int x, int y, int cote) { int[][] xy = new int[2][6]; xy[0][0] = x; xy[1][0] = y; xy[0][1] = xy[0][0]; xy[1][1] = xy[1][0] - cote; xy[0][2] = xy[0][1] - (int)( Math.cos(60) * cote ); xy[1][2] = xy[1][1] + (int)( Math.sin(60) * cote ); xy[0][3] = xy[0][2] - (int)( Math.cos(60) * cote ); xy[1][3] = xy[1][1]; xy[0][4] = xy[0][3]; xy[1][4] = xy[1][0]; xy[0][5] = xy[0][4] + (int)( Math.cos(60) * cote ); xy[1][5] = xy[1][4] - (int)( Math.sin(60) * cote ); return xy; } public void paintComponent (Graphics g) { Graphics2D g2D = (Graphics2D) g; GeneralPath hexa = new GeneralPath(); int[][] xy = new int[2][6]; int first_x = 200; int first_y = 200; int cote = 100; xy = coordonnees(first_x, first_y, cote); hexa.moveTo(xy[0][0], xy[1][0]); hexa.lineTo(xy[0][1], xy[1][1]); hexa.lineTo(xy[0][2], xy[1][2]); hexa.lineTo(xy[0][3], xy[1][3]); hexa.lineTo(xy[0][4], xy[1][4]); hexa.lineTo(xy[0][5], xy[1][5]); hexa.closePath(); g2D.setColor(Color.WHITE); g2D.fill(hexa); g2D.setColor(Color.BLACK); BasicStroke contour = new BasicStroke(4); g2D.setStroke(contour); g2D.draw(hexa); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.getContentPane().add(new poly()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600,600); frame.setVisible(true); } }
1 ) quand le pointeur de la souris est sur l'hexagone, le bord devient bleu.
2 ) si je clique sur l'hexagone, il devient rouge
3) quand le pointeur de la souris quitte l'hexagone, le bord redevient noir.
Comment dois-je utiliser le MouseListener ?
Partager