Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Ralentir une boucle [ Divers / Débutant(e) ] (Seb33300)

mardi 30 janvier 2007 à 09:48:47 | Ralentir une boucle

Seb33300

Bonjour,

Afin d'afficher une annimation de rotation, je doit ralentir une boucle pour ne pas qu'elle s'execute trop vite et que l'annimation s'affiche.

voicu ma boucle :

        for(int i=0; i<100; i++){
            phibase+=phi;
            repaint();
        }

Il faudrait apres le repaint() dans la boucle mettre une "pause" de 1s au moins avant de faire le tour suivant de la boucle.

Apres quelques recherches j'ai trouvé ces code mais ils ne fonctionnent pas dans mon cas :
L'image n'est pas reactualisé toutes les seconde mais seulement a la fin de la boucle apres la pause
	try
{
Thread.currentThread().sleep(1000);
}
catch(InterruptedException ex){}

Meme chose pour :
            Object o=new Object();
            try
            {
                synchronized(o) { o.wait(1); }
            }
            catch(InterruptedException ex) { }

vendredi 2 février 2007 à 16:57:52 | Re : Ralentir une boucle

fredou30

Tu peux mettre un wait dans ta boucle.

Je crois que tu peux le faire avec Thread.wait(nb milli sec);

dimanche 4 février 2007 à 02:39:44 | Re : Ralentir une boucle

Horfee

tu peux utiliser un JTimer si tu utilise swing.
mais si tu souhaite utiliser la méthode thread :

try {
       for(int i=0; i<100; i++){
            phibase+=phi;
            repaint();
           Thread.sleep(1000);
        } catch(InterruptedException ex){}

En ce qui concerne le wait, son utilisation est utile pour la synchronisation des threads : cela sert a attendre qu'un thread fils notifie celui ci ... pas vraiment utile dans ton cas.
Je te conseille cependant le JTimer, car dans ton cas l'application va etre "endormi" pendant une seconde... et ceux pendant plus d'une minute  40... limite un peu chiant...
   

dimanche 4 février 2007 à 11:21:03 | Re : Ralentir une boucle

Seb33300

Désolé l'annimation n'aparai pas avec ta méthode :/

Par contre j'ai trouvé une autre méthode qui marche mais il reste encore un probleme à regler :

Il faudrais stoper le timer à l'interieur de celui ci mais je n'ai pas trouver de moyen de le faire (il n'a pas l'air d'accepter le stop() )

finalint DELAY = 50;
finallong start = System.currentTimeMillis();
final Timer timer = new Timer(DELAY, new ActionListener(){
    int i = 0;
    publicvoid actionPerformed(ActionEvent e){
    if(i<30){
        // Code
        repaint();
        i++;
    }else{
    // stop l'annimation
    // Code
timer.stop(); // La variable locale timer n'a peut-être pas été initialisée
repaint();
    }
    }
});

timer.start();



Cette discussion est classé dans : boucle, apres, annimation, repaint, ralentir


Répondre à ce message

Sujets en rapport avec ce message

repaint dans une boucle for... [ par marques83 ] Bonsoir,j'ai écrit un jeu "The game of Life"... dans ce jeux j'ai besoin de faire un refresh, ou mieu dit en langue de programmation un repaint() dans changer panel apres action de la bar de menu [ par garpa ] Bonjour,Voilà le probleme sur lequel je m'arrache les cheveux.J'ai une classe menu qui me crée une barre de menu au top de ma frame.J'ai différentes c récuperer socket apres plantage? [ par Johan972 ] Salut, j'aimerais savoir si il existe un moyen de récuperer la liste des clients qui etaient connectés a un serveursocket apres un plantage!Et aussi, Java & Flash [ par thr_dreamer_57 ] Salut tout le monde,J'ai besoin d'integrer une annimation flash présentée sous format .swf dans mon frame et je voudrai aussi savoir comment faire un KeyListener, problème avec le 2 eme joueur [ par tchern007 ] Bonjour, J'éxplique un peu le contexte, j'ai projeté de faire un bomberman à ma sauce mais je me heurte à un petit problème meme deux. Le premier souc Repaint et resize [ par eplanet ] Bonjour à tous, je viens à vous car j'ai un problème concernant le rafraichissement de mon IHM. Je modifie certains JPanel de ma fenêtre en changeant Boucle avec JTextField [ par CicinhoRaul ] Bonjour , j'ai un petit problème , j'aimerais savoir est-ce qu'on peut ecrire ceci en java :login = new JTextField(10);if(login != null){....}Apparemm java/ javaScript [ par fbenamirouch ] bonjour,j'aimerai ajouter une ligne avec javaScript,j'explique mon problemedans ma jsp j'ai une boucle(0 à 4) pour incrementer le nb de ligne quand un Lancer une instruction derriere une boucle infinie [ par redlion75 ] Bonjour,j'ai besoin d'afficher dans une fenetre un texte assez long, j'utilise pour cela une boucle infinie pour faire défiler mon texte.Pb: je veux e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.