Partage
  • Partager sur Facebook
  • Partager sur Twitter

Delai de temps entre chaque instruction (javafx)

    30 mars 2015 à 16:00:14

    Bonjour, j'utilise javafx avec netbeans (jre 8.40)

    je veut faire une boucle pour (i=0;i<la taille du tableau;i++ )

    t[i] contient une instruction qui s'execute en 2 seconde , et je veut executer t[i] ensuite attendre 2 secondes pour faire avancer le i de la boucle.
    mercii d'avance  

     

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2015 à 18:47:10

      Bonjour,

      Regarde les timer, ou sheduler

      Azourkaï

      • Partager sur Facebook
      • Partager sur Twitter
      Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu’il est stupide.
        30 mars 2015 à 19:53:52

        Merci Azourkaî ,

        j'ai cherché avec les timer et j'ai essayé de l’intégrer dans mon code mais la boucle s'execute une seule fois :

        Timeline timeline = new Timeline(new KeyFrame(
                Duration.millis(2500),
                ae -> ma_fonction));

        quand j'appel dans une autre methode je fais ça :

        for (i=0;i<5;i++)
        timeline.play(); 

        mais moi je veut que le i de ma boucle s’incrémente chaque 2500milisecondes puis j'appel timeline
        voici mon problem
         

        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2015 à 20:27:34

          je n'ai jamais utiliser les timers je ne peux pas trop t'aider mais si non il y a Thread.sleep(temps en millisecondes)

          Azourkaï

          • Partager sur Facebook
          • Partager sur Twitter
          Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu’il est stupide.
            30 mars 2015 à 21:08:38

            Un exemple de timer avec un nombre de répétitions

            public class TimerTest {
            
                /**
                 * @param args the command line arguments
                 */
                public static void main(String[] args) {
                    Timer timer = new Timer();
                    // Répète 5 fois une tâche à 2500ms d'intervalle
                    timer.schedule(new RepeatTask(timer, 5), 0, 2500);
                }
            
                // Une tâche à répéter
                private static class RepeatTask extends TimerTask {
                    // Le Timer à arrêter
                    private Timer timer;
                    // Nombre de répétitions
                    private int repeats;
            
                    public RepeatTask(Timer timer, int repeats) {
                        this.timer = timer;
                        this.repeats = repeats;
                    }
            
                    // L'action à effectuer à intervalles réguliers
                    @Override
                    public void run() {
                        System.out.println(repeats);
                        // On décrémente le nomber de répétitions
                        --repeats;
                        // Plus de répétitions, on stoppe le timer
                        if (repeats == 0)
                            timer.cancel();
                    }
                }
                
            }
            



            • Partager sur Facebook
            • Partager sur Twitter
              31 mars 2015 à 14:07:38

              Comment sais-tu que l'instruction dure 2sec ?
              En es-tu certain ?

              Quitte à exécuter un code de 2sec, puis attendre 2sec...
              Pourquoi ne pas lancer l'exécution toutes les 4sec à l'aide d'un timer ?

              Quand on doit exécuter des actions à intervalle régulier :
              plutôt que de se branler le cerveaux avec une boucle, un Thread.sleep() dégueulasse, des Threads, ...
              mieux vaut utiliser un Timer (ou Scheduler) qui fait tout ce travail proprement et facilement !
              • Partager sur Facebook
              • Partager sur Twitter
              Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
                31 mars 2015 à 16:40:48

                Pinguet62 a écrit:

                Comment sais-tu que l'instruction dure 2sec ?
                En es-tu certain ?

                Quitte à exécuter un code de 2sec, puis attendre 2sec...
                Pourquoi ne pas lancer l'exécution toutes les 4sec à l'aide d'un timer ?

                Quand on doit exécuter des actions à intervalle régulier :
                plutôt que de se branler le cerveaux avec une boucle, un Thread.sleep() dégueulasse, des Threads, ...
                mieux vaut utiliser un Timer (ou Scheduler) qui fait tout ce travail proprement et facilement !


                la fonction que je dois appeler fair deplacer un cercle d'une position a une autre durans 2sec , donc si je veut le deplacer 5fois je dos l'appeler 5fois ,alors attendre 2sec entre chaque deplacement ,
                c'est ça Pinguet62 ce que je veut faire ;)
                • Partager sur Facebook
                • Partager sur Twitter

                Delai de temps entre chaque instruction (javafx)

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown