Geomaster
Messages postés22Date d'inscriptionlundi 9 décembre 2002StatutMembreDernière intervention31 juillet 2003
-
10 déc. 2002 à 21:18
JHelp
Messages postés261Date d'inscriptionjeudi 5 septembre 2002StatutMembreDernière intervention 6 octobre 2005
-
18 déc. 2002 à 20:24
Bon alors je dois etre bete parce que j'arrive pas à faire ce dont j'ai envie... c'est à dire une boucle infinie tant qu'on appuie pas sur la touche entrée ! C'est pourtant pas la fin du monde... !
Geomaster
Messages postés22Date d'inscriptionlundi 9 décembre 2002StatutMembreDernière intervention31 juillet 2003 11 déc. 2002 à 09:00
Exact je viens de tester et ça ne marche pas vu que toute l'action se déroule dans un panel qui est dans une frame et non dans la console... et je ne vois pas commenr reproduire le mm schéma dans un keylistener...
Le Geomaster du Secret des Etoiles :o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
JHelp
Messages postés261Date d'inscriptionjeudi 5 septembre 2002StatutMembreDernière intervention 6 octobre 200511 18 déc. 2002 à 20:24
En fait, c'est une solution, mais une mauvaise solution.
On ne fait pas de boucle infinie sur le clavier, jamais.
Tu peux te débrouiller autrement, je suppose, que tu désires mattre en pause tes personnages, et bien s'il s'agit de thread, tu a les méthodes wait (attend) et notify (reveil) qui font çà très bien. La seule contrainte est de les appelée d'une méthode sychronized. Mais c'est un faux probléme, tu peut creer deux méthodes ainsi :
public synchronized void pause()
{
try{wait();}catch(InterruptedException ie){}
}
public synchronized void reprise()
{
notify();
}
Ainsi, tu met en pause() tout le monde, quand une touche est capturée par le key listener, s'il s'agit de celle que tu attends, tu reveilles tout le monde.
Et fini la boucle infinie.
Pourquoi faut-il éviter une boucle infinie dans un listener ?
Car les instruction qui prennent trop de temps à l'intérieur font tout ralentir et augmente les chances de plantages.
J'ai déjà fiat ce genre d'erreurs et crois moi je m'en suis mordu les doigts.