Problème pour arrêter un Thread dans l'attente d'une réponse de l'utilisateur de

Résolu
ModeH Messages postés 5 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 30 septembre 2005 - 27 sept. 2005 à 21:11
ModeH Messages postés 5 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 30 septembre 2005 - 30 sept. 2005 à 00:55
Bonjour à tous,
Je suis en train de pogrammer un petit logiciel de peer2peer qui comporte en autre une partie client et une serveur. J'aimerais pouvoir lors de la connection d'une nouvelle personne sur le serveur, faire une demande a l'utilisateur dans une JFrame : Acceptez-vous la connection de..." bouton OUI ou NON...
J'aimerais ne pas couper la connection (Input-OutputStream) avec le client pendant cette phase de demande.
J'ai donc naturellement utiliser un wait() avec le synchronized et tout et tout...
Malheureusement l'appel du wait() bloque toute l'interface graphique donc pas de réponse de l'utilisateur possible (entre autre).
A force de bidouillage, j'utilise maitenant les classes : java.util.concurrent.locks.Condition , java.util.concurrent.locks.Lock et java.util.concurrent.locks.ReentrantLock
Ce qui donne la même chose...
Dans ma recherche d'une réponse, j'ai eu l'occasion de me rendre compte que la démarche que j'ai choisie ne semble pas trés utilisé, en Java au moins, mais mon programme est en fin de développement donc j'aimerais trouver un truc dans le genre.
Est-ce que quelqu'un à une idée ?
Merci d'avance

2 réponses

ModeH Messages postés 5 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 30 septembre 2005
30 sept. 2005 à 00:55
En fait, j'avais oublier de mettre le client dans un thread... Donc quand je faisais des tests en boucle 127.0.0.1 mon client bloquait l'application.
Merci gmi19oj19, je vais aller faire quand même un petit tour chez sun pour voir les SwingWorker.
3
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
28 sept. 2005 à 09:21
La meilleure solution consiste à utiliser la classe SwingWorker développée par Sun.



Google est ton ami =>



http://www.google.fr/search?hl=fr&q=SwingWorker&btnG=Rechercher&meta=

gmi19oj19
0
Rejoignez-nous