IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Mise à jour de l'affichage de la fenêtre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de YuGiOhJCJ
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2005
    Messages : 206
    Par défaut Mise à jour de l'affichage de la fenêtre
    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);
    	}
    }
    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++;
    				}
    			}
    		}
    	}
    }
    Je voudrais savoir pourquoi l'affichage ne se met pas à jour automatiquement et est-ce qu'il y a une solution?
    Merci.

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Essaye en mettant
    à la fin de la boucle infinie ( au passage pourquoi faire une boucle infinie avec un while(1==1) ? un while(true) serait plus "compréhensible" )


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre confirmé Avatar de YuGiOhJCJ
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2005
    Messages : 206
    Par défaut
    Merci c'est ça qu'il me manquait.
    Ca fonctionne parfaitement.
    Résolu!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jour de l'affichage
    Par Chris_Ewoks dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/10/2008, 16h05
  2. Dessiner en Wpf et mise à jour de l'affichage
    Par Orc_Fayeh dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 11/04/2008, 11h51
  3. Mise à jour de l'affichage des messages
    Par emmy99 dans le forum Langage
    Réponses: 8
    Dernier message: 28/01/2008, 19h36
  4. Mise à jour de l'affichage
    Par piteon dans le forum 2D
    Réponses: 8
    Dernier message: 13/02/2007, 11h59
  5. [JTree] Mise à jour de l'affichage
    Par freddy766 dans le forum Composants
    Réponses: 3
    Dernier message: 16/10/2006, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo