Lancer un évènement périodique en java 1.1.8

gege_13 Messages postés 12 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 27 septembre 2005 - 29 août 2005 à 10:37
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 - 2 sept. 2005 à 16:50
Bonjour,



Je souhaiterais lancer périodiquement un évènement en java et avec un jdk1.1.8.

J'ai cherché un peu sur le net et j'ai trouvé des méthodes faisant ça en utilisant la classe Timer et TimerTask,

or ces classes sont utilisées à partir de l'api 1.3.

Y aurait-il d'autre moyen de lancer un évènement périodiquement avec l'api 1.1.8 ???



Merci d'avance pour vos réponses,

Gégé

12 réponses

scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
29 août 2005 à 13:20
salut

je crois que la classe javax.swing.Timer est disponible à partir du jdk 1

elle a moins de fonctionnalité que la classe java.util.Timer mais propose quand meme ce que tu demande

voila a++
0
gege_13 Messages postés 12 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 27 septembre 2005
29 août 2005 à 14:01
Oui c'est possible mais en tout cas, je ne sais pas comment l'utiliser
puisqu'il faut lui mettre en argument un ActionListener. Saurait tu me
montrer un exemple pour que je puisse avoir une vague idée??


Merci


Gégé
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
29 août 2005 à 14:24
salut

tu peux utiliser le constructeur comme ceci :

Timer timer = new Timer(1000, new ActionListener() {

public void actionPerformed(ActionEvent e) {


//ton code à exécuter à chaque délai (ici j'ai mis 1 seconde)

}

});

le temps se compte en millisecondes

voila a++
0
gege_13 Messages postés 12 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 27 septembre 2005
29 août 2005 à 20:02
J'ai essayé ce que tu m'as dit mais je n'arrive pas bien le faire fonctionner:

J'ai essayé plusieurs configuration de code mais il me met tjs pareil.
En fait, il execute pas ce qu'il y a dans actionPerformed
d'ActionListener. Je dois certainement oublié quelquechose mais je ne
sais pas quoi.

Voila ce j'ai tapé:



public class TestThread implements ActionListener{



static Timer timer;



/** Creates a new instance of TestThread */

public TestThread() {

int delay = 60*1000; // 60
second in
milliseconds


timer = new Timer(delay, this);

timer.start();

}



public void actionPerformed(ActionEvent evt) {

System.out.println("coucou");

}



public static void stop_allthread(){

timer.stop();

}



public static void main(String [] args){


try{


new TestThread();


System.out.println("fin du
test...bye");

}catch(Exception e){System.out.println(e);}

}

}


Lorsque je le lance, il me mets : "fin du test...bye" alors que je veux qu'il m'affiche :

"coucou" toutes les minutes



Comment faire??? j'ai tout essayer , je suis à court d'idée...



Merci d'avance.
Gégé
0

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

Posez votre question
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
31 août 2005 à 16:25
je crois que c'est parce que tu ne fais rien à côté du Timer

les Timer sont souvent utilisés avec des interfaces graphiques

ici la JVM crée simplement le Timer et puis termine le processus
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
31 août 2005 à 18:58
essaie plutot les thread pour ton besoin

je crois que ca marchera mieux

si besoin d'aide, n'hésites pas
0
gege_13 Messages postés 12 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 27 septembre 2005
31 août 2005 à 19:04
Merci pour tes reply:

je dois utiliser un chronomètre qui se lance toutes les minutes. Y'aurait il moyen de faire ca avec autre chose que les Timer???

Gégé
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
31 août 2005 à 22:35
comment ca un chronometre qui se lance toutes les minutes?
0
gege_13 Messages postés 12 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 27 septembre 2005
1 sept. 2005 à 16:17
le terme chronomètre n'est peut être pas le bon terme : le bon terme
est un minuteur qui a chaque minute lance l'évèement souhaité. Yaurait
il moyen de programmer ca autrement qu'avec la classe Timer????

Gégé
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
1 sept. 2005 à 17:18
oui tu peux utiliser un Thread :



class MonThread implements Runnable {



public MonThread() {

Thread t = new Thread(this);

t.start();

}

public void run() {

while(true) {

try {

//le code à exécuter

Thread.sleep(le temps en ms);

} catch(Exception e) {

//traiter l'exception

}

}

public static void main(String[] args) {

new MonThread();

}

}
0
gege_13 Messages postés 12 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 27 septembre 2005
1 sept. 2005 à 19:23
et si je veux arreter le thread alors que celui-ci est en cours d'attente(sleep)?? il me génère une exception???

Gégé
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
2 sept. 2005 à 16:50
il est marqué dans la doc que oui
0
Rejoignez-nous