Bonjour,
j'écris un jeu de tennis de table (tel que Pong) en Java avec Swing.
Le but pour l'instant n'est que de déplacer deux raquettes verticalement (la balle et le filet ne sont pas encore présents).
Je dessine sur une JFrame.
Pour cela, je redéfinis la méthode paint(Graphics g).
La première solution sans aucun appel à la méthode repaint pose le problème que la fenêtre n'est pas redessinée lorsque je déplace les raquettes (en fait elle est redessinée seulement lorsqu'on la cache puis qu'on l'affiche à nouveau).
La deuxième solution avec repaint à chaque événement pose le problème de clignotement (probablement car trop d'appels à repaint sont effectués) mais résoud le problème que la fenêtre n'était pas redessinée.
La troisième solution avec repaint toutes les 60ms pose le problème de clignotement (probablement car trop d'appels à repaint sont effectués) mais résoud le problème que la fenêtre n'était pas redessinée. Si on augmente le délai : 200ms alors le problème de clignotement est résolu mais un nouveau problème apparaît : avec 200ms, la fenêtre est redessinée un peu tard (le déplacement des raquettes est saccadé).
Bref, aucune de mes solutions ne me convient.
Est-ce que quelqu'un aurait une solution pour que lorsque je déplace mes raquettes la fenêtre se redéssine correctement?
Merci bien.
Voici le code :
Solution 1 :
Solution 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
Solution 3 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190

 

 
		
		 
        

 
			
			


 
			 
   


 Problème pour redessiner une fenêtre (repaint, clignotement, saccades)
 Problème pour redessiner une fenêtre (repaint, clignotement, saccades)
				 Répondre avec citation
  Répondre avec citation
Partager