Comment avoir accec au Thread courant??

joshua91 Messages postés 22 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 28 juin 2010 - 13 mai 2005 à 13:40
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 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???



merci d'avamce pour vos lumieres & commentaires.

8 réponses

joshua91 Messages postés 22 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 28 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é.
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
13 mai 2005 à 14:47
Et pourquoi simplement tu ne construis pas un JoptionPane et tu changes son contentPane???




JOptionPane pane = new JOptionPane();

pane.removeAll();


pane.add(monNouveauContent)


-------------------
[}:)][orange] dams /orange[}:)]
-------------------
0
bjdc Messages postés 16 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 18 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.
0
safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
13 mai 2005 à 15:10
sinon tu pourra remplacer ta JFrame par Dialog ou JDialog en ajustant sa modalité: setModal(true).

je X ke c'est la solusion ki te convient de plus car t'aurra pas grande
chose à modifier ds ton code si tu utilise un JDialog au lieu de JFrame.
0

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

Posez votre question
joshua91 Messages postés 22 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 28 juin 2010
13 mai 2005 à 15:16
merci pour vos tips.



pour la boucle vide, ben je l'ai aussi essaye mais ca prend tellement
de de ressource cpu que ma frame entiere a du mal a s'afficher!!!!



et pour le thread, je vais essaye de lui faire un sleep()... peut etre que ca va marcher...



@+
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
13 mai 2005 à 16:42
Franchement, pour te simplifier la vie, utilise un JOptionPane ou une JDialog,

ce sera beaucoup plus simple et sur que de toucher au thread...

M'enfin, ce que j'en dis...
0
amauryxiv Messages postés 83 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 3 août 2017
20 mai 2005 à 16:19
Ben oyui la dans ce cas c'est un JDialog modal qu'il faut utiliser. Et comme ca je te garantit que ca marchera.


0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
20 mai 2005 à 16:22
Hum, qd un post n'est plus utilise depuis 7 jours,

si c'est pour rajouter un commentaire comme ca...

c'est le reveiller inutilement, pour ne pas etre mechant...

-------------------
dams
-------------------
0
Rejoignez-nous