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

Développement Mobile en Java Discussion :

Problème avec affichage et sleep


Sujet :

Développement Mobile en Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut Problème avec affichage et sleep
    Bonjour.
    J'ai un petit soucis dans une application, j'ai plusieurs ligne et je voudrais en choisir une aléatoirement. Pour plus de suspens, je voudrais en afficher quelques unes avant la définitive.

    J'utilise une boucle pour le choix qui gère l'affichage et l'attente. Mon problème est que l'affichage se fait juste à la fin, il n'y a pas d'affichage intermédiaire.

    Voici mon code, merci de vos réponses.

    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
    private void lancer()
        {
        	Random rand = new Random();
        	start = true;
        	for (int i = 0; i < 10; i++)
        	{
        		selectJoueur = rand.nextInt(nbJoueur);
        		repaint();
        		attend(500);
        	}
        	selectJoueur = rand.nextInt(nbJoueur);
        }
     
    private void attend(long tmp)
        {		
    		try {
    			Thread.sleep(tmp);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
        }

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Par défaut
    Je ne me rapelle plus exactement comment ca se passe, mais le fait d'appeler repaint() ne redessine pas tout de suite ton affichage.
    De ce que je me rapelle, ca signifie juste à l'appli qu'il faut qu'elle redessine dès que possible.
    Or là, ton appli va d'abord effectuer ses 10 tours de boucles, sortir de ta fonction et seulement ensuite repeindre avec le dernier résultat.

    Pour faire ce que tu veux, il faudrait plus un truc du genre (Erreur possible dans le code... c'est plutôt juste pour montrer l'idée de passer par un thread)
    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
    private void lancer() {
             Random rand = new Random();
             start = true;
             if (compteur < 10)
             {
                      selectJoueur = rand.nextInt(nbJoueur);
                      repaint();
                      compteur ++;
                      MonThread thread = new MonThread(this);
                      thread.start();
             }
    }
     
    class MonThread extends Thread {
             private MaClasse m_cMaClasse;
     
             MonThread(cMaClasse) {
                      m_cMaClasse = cMaClasse;
             }
     
             public void run() {
                      attend(500);
                      m_cMaClasse.lancer();
             }
    }
    Et si tu ne veux pas passer par un thread, tu peux à la fin de ton implémentation de paint(), lancer ta fonction lancer() (toujours sans la boucle for).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    Ça marche nickel !

    Merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/03/2008, 23h44
  2. [MySQL] Problème avec affichage des données d'une base MySQL
    Par leclone dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/12/2006, 12h40
  3. Problème avec affichage de text
    Par SkulD dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 25/10/2006, 15h03
  4. Réponses: 3
    Dernier message: 10/01/2006, 14h01
  5. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45

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