question de débutant sur les threads
Bonjour,
je suis novice en matière de threads. Si quelqu'un pouvait m'aider... Merci bien :
J'ai créé une application qui lance une animation graphique. Pour cela j'ai créé un thread qui gère cette animation. C'est-à-dire pour la lancer, l'arrêter et la reprendre (en cliquant sur des boutons de ma barre d'outil).
Seulement, quand je lance l'animation ça marche, quand je l'arrête ça marche aussi, mais quand je veux la reprendre ça plante.
Voici le code de ma classe Thread. Les noms des méthodes sont suffisamment explicites pour se passer de commentaires. Encore merci.
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 25 26 27 28 29 30 31 32 33 34 35 36
| public class Evolution extends Thread {
// référence à la fenetre principale de l'application
public Evolution(fenPrinc fp){
this.fp = fp;
}
public synchronized void anime(){
if(this.getState() == State.WAITING)
notifyAll();
else
start();
}
public synchronized void interromp(){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void run() {
while(true)
try {
fp.getPanSys().repaint();
Thread.sleep(10);
} catch (InterruptedException e) { e.printStackTrace();}
}
private fenPrinc fp;
} |