Bonjour,
je suis arrivé à afficher un cercle sur une fenêtre.
je parviens à définir la position du cercle sur l'écran également.
Il me manque le fait de réactualiser automatiquement l'affichage de la fenêtre.
En effet, il me faut réduire la fenêtre et la refaire apparaitre pour voir la balle qui a changé de position.
Voici le code:
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 import java.awt.*; import javax.swing.*; class Cercle extends JPanel{ //Positions du cercle int x; int y; //Dimensions du cercle int w = 100; int h = 100; protected void paintComponent(Graphics g){ super.paintComponent(g); //Dessin du cercle Color cFond = new Color(232,232,132); g.setColor(cFond); g.fillOval(x,y,w,h); g.setColor(Color.black); g.drawOval(x,y,w,h); } }Je voudrais savoir pourquoi l'affichage ne se met pas à jour automatiquement et est-ce qu'il y a une solution?
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 import java.awt.*; import javax.swing.*; class BalleRebondissante{ public static void main(String[] args){ int i = 0; //Résolution de la fenêtre int res_x = 640; int res_y = 480; //Temps courrant long temps_courrant; //Temps récupéré long temps = 0; //Création de la fenêtre JFrame f = new JFrame("Balle rebondissante"); Cercle dessin=new Cercle(); //Positions initiales de la balle dessin.x = 200; dessin.y = 2; //Dimensions de la fenêtre f.setSize(res_x,res_y); //Ajout du dessin f.add(dessin); //Affichage de la fenêtre f.setVisible(true); //Boucle infinie while(1==1){ //Récupération du temps temps_courrant = System.currentTimeMillis(); //Mise à jour de l'affichage if(temps_courrant > (temps + 1000)){ i++; System.out.println("Passé dans la boucle : " + i + " fois.\n"); temps = temps_courrant; //Déplacement de la balle en x if(dessin.x<(res_x-dessin.w)){ dessin.x++; } //Déplacement de la balle en y if(dessin.y<(res_y-dessin.h)){ dessin.y++; } } } } }
Merci.
Partager