Vraiment grand besoin de votre aide pour les Threads

Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007 - 31 mars 2007 à 15:46
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007 - 1 avril 2007 à 17:59
Bonjour a tous !
J'espere vraiment que vous allez pouvoir m'aider car je m'arrache les cheuveux...
Pour mon soft que je suis en train de mettre en place (systeme de console unix) j'ai besoin de thread (enfin je pense), je vous explique mon probleme...
J'ai une interface graphique du type "console" et j'ai besoin que le programme réagisse quand la personne tape sur la touche entrée, jusque la pas de probleme j'ai utilisé les keylistener. Mais le probleme c'est que il doit y avoir une sorte de discussion entre le programme et la personne devant l'ordinateur donc il faut que la main passe de l'un a l'autre. C'est a dire que quand j'ai fini de taper mon texte, j'appui sur entrée et la l'ordinateur traite ma réponse et me redonne la main...
Le probleme c'est que je ne connais pas bien les threads et je ne sais pas trop comment m'y prendre, au niveau de l'architetecture des classes etc... Alors que je me dit que cela ne doit pas etre dur, juste un systeme de méssagerie avec des "synchronized" mais je n'y arrive pas...

Donc si quelqu'un peut m'aider... J'ai cherché du code deja fait pour un style de méssagerie pour tenter de comprendre en le lisant mais je n'ai rien trouvé...si vous en avez je suis prenneur...

Un grand merci à celui qui pourra m'aider !

8 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
31 mars 2007 à 15:55
Salut:

KeyListener dans un programme console? 
________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
0
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007
31 mars 2007 à 15:57
non non je dis que j'ai fait un affichage de type console mais c'est du swing, tu vois c'est genre un ligne que tu tapes dans un Jtextfield qui aprés va dans un JtextArea et que est interprété par le programme...
0
viphadia Messages postés 25 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 13 septembre 2008
31 mars 2007 à 20:26
c'est simple synchroniser  le thread l'affichage(console) avec le le thread de traitement(action sur le bouton entrer)
0
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007
1 avril 2007 à 11:54
Mais comment tu bloques le traitement ? parce que sinon ma tache de traitement cherche a avoir la reponse du JTextField trop tot et donc tout plante, je ne sais pas comment bloquer l'acces à la variable par la tache de traitement jusqu'a ce que la personne ai repondu. pour etre plus clair :

1 - La console affiche une question...
2- La personne repond...
3- Le traitement travaille en fonction de la reponse.
4 -La console affiche une reponse...
etc...
Comment faire donc pour ne pas avoir le processus 3 qui se lance avant que la personne ai repondu dans pas partie 2... ?

merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cheplu Messages postés 16 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 1 juillet 2007
1 avril 2007 à 14:28
Tu peux très bien ne lancer ton traitement (ou tache 3) apres que l'utilisateur ai appuyé sur la touche "entrée" (dans un simple KeyListener) ou qu'il aie validé à l'aide d'un bouton "OK". Pas nécessairement besoin de Thread pour ça (bien que si ton traitement 3 est long, il risque de bloquer ton IHM pendant un certain temp et à ce moment la il faut mieux lancer des Threads).

Pour empecher l'utilisateur de saisir des valeur dans le JTextField tant que le traitement n'est aps terminé, il suffit de le bloquer (par un setEnable(false) ).
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
1 avril 2007 à 14:30
Salut,

utilise les méthode wait et notify pour appliquer ta syncro entre tes thread

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
viphadia Messages postés 25 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 13 septembre 2008
1 avril 2007 à 15:31
bonjour

ou bien utilse la méthode sleep(temp).
0
Abasedebasse Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 27 juillet 2007
1 avril 2007 à 17:59
Comme utilise tu le wait et notify ?
0
Rejoignez-nous