Probleme dans l'arret d'un Thread
Bonjour à tous,
Tout d'abord je tiens à préciser que j'ai fait le tour des sujets semblables au mien sans toute fois y trouver le même problème que moi ou une solution qui pourrait y remédier.
Je vous l'explique en quelques mots, J'ai dans un actionListener d'un bouton un Thread qui permet à une fonction de tourner en boucle grâce à un while selon la valeur d'une variable boolean. Je voudrais que lorsque je reclic sur le même bouton, la variable qui fait tourner cette boucle while infini prennent la valeur false pour en arrêter l'exécution.
Je vous place le code de mon actionListener:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| bouton1.addActionListener( event ->
{
boolean test2 = this.test; //On récupère la valeur initial du boolean
Fenetre f = this; //On récupère l'objet sur lequel notre boucle "infini" va appeler la méthode (pas important dans le pb)
Thread t1 = new Thread (new Runnable() {
@Override
public void run() {
while(test2){
f.afficheFourmi();
}
try{
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
}
});
if(test2){ //Si la boucle n'est pas en cours d'exécution on lance le thread
t1.start();
}else{ //Sinon on modifie la valeur du boolean test de la boucle infini (ce qui ne se fait pas)
test2 = false; //Le problème est ici, je ne peux pas changer la valeur de cette variable, une erreur me demande de lui mettre un modificateur final afin qu'elle ne puisse plus être changée
}
}
); |
Il est possible que je n'utilise pas bien certains objets ou certaines fonctions, je ne suis qu'en deuxième année de Licence, tout conseil est le bienvenue ;)
Merci bien !