Time

demon50 Messages postés 14 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 20 juin 2008 - 19 avril 2008 à 18:17
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 20 avril 2008 à 11:28
slt a tous,
je voudrez savoir comment faire pour java excute une instruction (ou bloc d'instruction) en chaque secondes (ou autres valeur de temps) ?

que dois je importer et ecrire ?

et merci d'avance ;

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
19 avril 2008 à 18:41
Salut,

Fait un thread avec une boucle infinie qui lance ton instruction, sans oublier de mettre un sleep de 1 secondes dans ta boucle.
______________________________________
DarK Sidious
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
19 avril 2008 à 18:46
Salut,
Tu peux utiliser java.util.Timer.
Tu crée un classe qui implémente ActionListener avec la méthode actionPerformed à appeler toutes les secondes, puis tu fais un "Timer timer = new Timer (1000, action);timer.start();" ou action est une instance de ta classe que tu viens de créer.
Sinon avec un "Thread.sleep(1000);" tu attends 1 seconde, donc en l'utilisant dans un boucle active...
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2008 à 19:53
Salut:

Kysic >> La Timer que tu es en train de décrire est javax.swing.Timer.
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
19 avril 2008 à 20:34
Exact, toutes mes excuses pour la confusion.
java.util.Timer s'utilise apparemment de manière plus où moins similaire:
http://www.java2s.com/Code/Java/Development-Class/UsejavautilTimertoscheduleatasktoexecuteonce5secondshavepassed.htm
(l'exemple donné lance la tache une seule fois mais on peut aussi rajouter un paramètre au shédule pour l'exécuter à intervalle régulier).
Du coup je ne sais pas lequel est le mieux, java.util.Timer est sans doute plus léger si il s'agit juste de lancé une tâche à intervalle régulier.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
demon50 Messages postés 14 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 20 juin 2008
19 avril 2008 à 23:34
merci les amis ,
mais j'ai pas trop saisie comment l'utilisé .
si quelqu'un peux me donner un exemple de class java ou on utilise ça dedans .

et merci.   
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2008 à 23:43
Salut:

La solution la plus simple et celle qui est proposée par DarkSidious:

while (true) {
    // Traitements ici
    // ...

    // Temporisation 1s = 1000 ms
    try {
       Thread.sleep(1000);
    } catch (InterruptedException e) {
       e.printStackTrace();
       break;
    }
}
0
demon50 Messages postés 14 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 20 juin 2008
20 avril 2008 à 00:34
sayer g compris .
thanks
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 avril 2008 à 11:28
Salut:

Ce code est le corps de la méthode run() de l'interface Runnable (ou bien Thread qui implémente Runnable).

public void run() {
    while (true) {
    // Traitements ici
    // ...

    // Temporisation 1s = 1000 ms
    try {
       Thread.sleep(1000);
    } catch (InterruptedException e) {
       e.printStackTrace();
       break;
    }
  }
}
0