Arret boucle while par une touche [Résolu]

voxel88 6 Messages postés vendredi 13 août 2004Date d'inscription 18 août 2004 Dernière intervention - 13 août 2004 à 15:09 - Dernière réponse : cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention
- 18 août 2004 à 18:27
Bonjour,

J'ai une application en mode Console qui a une boucle(While), Comment faire pour l'arreter par une touche (ex : q ) et que l'application tourne en attendant (ne pas attendre une touche)

ps :
System.in.read() => cette commande attends une touche pour continuer le code... :-(
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
voxel88 6 Messages postés vendredi 13 août 2004Date d'inscription 18 août 2004 Dernière intervention - 18 août 2004 à 09:56
3
Merci
J'ai trouvé la solution sur un autre forum en utilisant 2 threads :

class prog {
public static void main(String[] args) {
boucle b;
touche t = new touche(b).start();
b = new boucle();
}
}

class touche extends Thread {
private boucle b;
public touche(boucle b) {
this.b=b;
}
public void run () {
String lettre = Lire.S(); // ou System.in.read()
b.tourne=false;
}
}

class boucle {
public boolean tourne = true;
public boucle() {
while(tourne) {
//instruction
}
}
}

Merci voxel88 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de voxel88
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 13 août 2004 à 15:52
0
Merci
GodConan :clown)

ben si tu veu metre 2 processus en activiter il te faut forcement 2 thread ...
dc un thread a l ecoute du clavier et un autre pour faire la boucle ...
Commenter la réponse de cs_GodConan
voxel88 6 Messages postés vendredi 13 août 2004Date d'inscription 18 août 2004 Dernière intervention - 13 août 2004 à 15:57
0
Merci
Merci de la réponse....

Je redoutais cette réponse......bon, je vais voir comment fonctionne les Threads.......
Commenter la réponse de voxel88
voxel88 6 Messages postés vendredi 13 août 2004Date d'inscription 18 août 2004 Dernière intervention - 13 août 2004 à 16:00
0
Merci
Et comment faire pour capturer une touche du clavier ?
Commenter la réponse de voxel88
indiana_jules 750 Messages postés mardi 9 mars 2004Date d'inscription 23 décembre 2008 Dernière intervention - 13 août 2004 à 16:03
0
Merci
Faut utiliser un KeyListener

[Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]
Commenter la réponse de indiana_jules
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 13 août 2004 à 16:07
0
Merci
GodConan :clown)

et ds ton action tu modifi la valeur de la var qui conditionne la fin de ta boucle ;o) genre : setFin( true )

avec "fin" boolean ds ta condition while ... ;o)
Commenter la réponse de cs_GodConan
voxel88 6 Messages postés vendredi 13 août 2004Date d'inscription 18 août 2004 Dernière intervention - 13 août 2004 à 16:22
0
Merci
Tu n'as pas un exemple de code avec ces 2 threads ?
Commenter la réponse de voxel88
voxel88 6 Messages postés vendredi 13 août 2004Date d'inscription 18 août 2004 Dernière intervention - 13 août 2004 à 16:42
0
Merci
Le KeyListener ne fonctionne que sur une applet ou une application graphique et non pas une appli en mode Console, non ?
Commenter la réponse de voxel88
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 13 août 2004 à 19:29
0
Merci
GodConan :clown)

ben une apli en mode console tu peu pas faire grd chose ;o)

et en effet le keylistener ne fonctione pas
mais tu peu faire un System.in.read (pas sure de la syntax)

...

pour les sample g pas le temp d en produire la ;-(
regarde deja sur le site tu devrai y trouver ton bonheur ..

;o)
Commenter la réponse de cs_GodConan
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 18 août 2004 à 18:27
0
Merci
GodConan :clown)

ben vi ;o) c kes kon disai ... ;o) héhé
Commenter la réponse de cs_GodConan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.