joshua91
Messages postés22Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention28 juin 2010
-
13 mai 2005 à 13:40
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007
-
20 mai 2005 à 16:22
Salut a tous.
Voila le probleme :
ds le processus lineaire de mon programe, une JFrame apparait pour que
l'utilisateur puisse faire un choix qui influance le reste du programme
(j'ai cree cette Jframe comme un JOptionPane.showConfirmDialog() plus
complet contenant: 1 Jlabel, 4 Jradiobuttun et 1 Jbutton).
seulement le processus n'attends pas que l'utilisateur notifie son
choix pour continuer....Contrairement a l'utilisation d'un
JOptionPane.showxxxDilog() qui lui, bloc le thread courrant.
J'ai essaye de redefinir cette class mais elle est trop complexe.....
D'ou l'idee d'avoir acces au thread courant/principal pour qu'il
attende le choix de l'utilisateur, seulement, je ne sais pas comment
avoir acces a ce thread???
joshua91
Messages postés22Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention28 juin 2010 13 mai 2005 à 13:42
Suis en Bioinformatique et j'essai de plonger dans l'univers de
la programmation en JAVA. Donc je compte sur votre gentillesse et vos
connaissances pour m'éclairer.
Merci d'avance et encore. josé.
bjdc
Messages postés16Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention18 mai 2005 13 mai 2005 à 14:49
Normalement c'est Thread.getCurrentThread()
(méthode static de la classe Thread qui renvoie le thread courant).
Par contre j'ai essaye un wait(), mais cela ne fonctionne pas (et
je ne sais pas trop pourquoi ^^), apparament le thread recoit des
notify() ou quelque chose dans le genre.
Une solution assez vilaine mais qui marche :
class xx {
private boolean sentinel = true;
xx() {
/...
code swing
.../
while(sentinel) {;}
/..suite de l'execution .../
}
et dans ton ActionListener lorsque tu recois la reponse tu met la sentinel=false;
Bon, c'est relativement moche, car ca te fait une boucle vide qui consomme du cpu pour rien, mais ca marche.