Pb de timer.stop()

joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007 - 5 avril 2006 à 00:00
etudev Messages postés 47 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 23 mai 2006 - 5 avril 2006 à 13:05
Bonjour,



J'ai un gros problème, je galère depuis longtemps étant débutant...

J'ai lu la doc sur timer sur Sun, mais je n'arrive pas à STOPER ce timer!!

Il se lance bien, il fonctionne bien, mais je n'arrive pas à l'éteindre à son 3eme bouclage...

Car il crash!

Si vous pouviez m'aider vous seriez super cools !!



Jo



public void decompte_temps()

{



int decompte = 1000; //en millisecondes



ActionListener tache = new ActionListener()

{

int nb_secondes = 0;

Timer decompteur = null;



public void actionPerformed(ActionEvent e)

{

nb_secondes++;

System.out.println("TIMERRRR !" + nb_secondes);



if(nb_secondes == 3)

{

decompteur.stop();

}

}

};

Timer decompteur = new Timer(decompte, tache);

decompteur.start();

}

4 réponses

etudev Messages postés 47 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 23 mai 2006
5 avril 2006 à 12:08
Salut,
As tu essayé de faire ca:
public void decompte_temps()
{

int decompte = 1000; //en millisecondes

ActionListener tache = new ActionListener()
{
int nb_secondes = 0;
Timer decompteur = null;

public void actionPerformed(ActionEvent e)
{ if(nb_secondes<=3){
nb_secondes++;
System.out.println("TIMERRRR !" + nb_secondes);
}}
};
Timer decompteur = new Timer(decompte, tache);
decompteur.start();
}
0
joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007
5 avril 2006 à 12:27
effectivement ça marche, mais est ce que le processus est tout de même en veille derrière come il n'y a pas eu de stop() ?
0
joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007
5 avril 2006 à 12:36
Dans tous les cas, je voudrais à tout pris qu'il s'arrête ce timer à une certaine valeur de nb_secondes
Voilà si vous des idées, je suis preneur!
Jo
0
etudev Messages postés 47 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 23 mai 2006
5 avril 2006 à 13:05
Salut,
je te propose une autre solution en utilisant un thread:

class thread extends Thread {
public thread() { }
// Surcharge de la méthode thread.run C'est ce code qui va être exécuté
// lors du démarrage d'un thread de cette classe par la méthode start.
public void run() {
for (int i=0; i<3; i++) {
// On attend une durée aléatoire en ms
try {
sleep((long)(Math.random()*10000));
} catch (InterruptedException e) {
System.out.println("Thread interrompu");
}
// Affichage de l'itération
System.out.println("TIMERRRR !" + nb_secondes);
}
}

dans ton programme principale:
thread t1=new thread( );
t1.start();

la tu es sur que ton programme s'arrete apres 3 affichage.

Bonne chance.
0
Rejoignez-nous