[JAVA] attendre autrement qu'avec une boucle vide

attendre autrement qu'avec une boucle vide [JAVA] - Java - Programmation

Marsh Posté le 19-02-2006 à 13:48:55    

Salut à tous  :hello:  
 
J'aurais besoin d'un petit conseil concernant l'attente sur une valeur d'un champ d'un objet. En fait j'ai créé une fenêtre en java dans laquelle se trouvent 4champs de texte et un boutton. Cette fenêtre est créée dans ma méthode "main" et j'aimerais justement que le "main" attende que l'on clique sur le bouton de la fenêtre pour continuer. Dans mon objet "ConnectWindow" qui gère la fenêtre j'ai ajouté un champ "isConnected" qui sera mis à "true" quand on clique sur le bouton. Dans le main j'ai placé une boucle  
 
while(maFenetre.isConnected) { }
 
pour attendre que ce champ devienne true et continuer le main mais je trouve ça relativement barbare.
 
N'y a t il pas un moyen plus optimal pour faire attendre le main que l'on ait cliqué sur le bouton de la fenetre ?
 
Je vous remercie d'avance  :jap:

Reply

Marsh Posté le 19-02-2006 à 13:48:55   

Reply

Marsh Posté le 19-02-2006 à 19:18:25    

Bon j'ai un peu réfléchi la dessus.
 
En gros j'ai une fenêtre avec des champs à remplir et un bouton "connect". J'aimerais que mon main attende que l'on pousse sur le bouton de la fenêtre mais ça sans faire de boucle infinie. De plus j'ai des informations (celles qu'on entre dans la fenêtre) à faire passer dans le main pour continuer, ce sont justement ces infos que j'attends.
 
Pour bien faire j'aimerais :
 
1) dans le main créer ma fenêtre.
2) faire attendre le main que l'on remplisse les boites de texte de la fenêtre et pousse sur le bouton.
3) continuer le main en utilisant les infos entrées dans la fenêtre (ce que je fais en accédant aux champs de mon objet fenêtre).
 
Le problème est de faire attendre le main sans qu'il ne bouffe toutes les ressources, càd sans faire de boucle infinie vide en attendant que l'on pousse sur le bouton.

Reply

Marsh Posté le 19-02-2006 à 19:27:25    

Reply

Marsh Posté le 19-02-2006 à 20:03:38    

C'est marrant, y'a tellement à dire que j'aurais répondu la même chose. Mais j'ai eu des scrupules...

Reply

Marsh Posté le 20-02-2006 à 13:03:41    

Salut
 
ça vous paraît facile mais pour moi ça ne l'est pas ! Je suis débutant, j'avais pensé aux threads le temps que l'on réponde à mon post mais ça ne résoud quand même pas mon problème de faire attendre le main lui même. D'abord la fenêtre est considérée comme un thread à part entière alors je ne vois déjà pas comment utiliser wait() et notifyall() si elle ne doit pas être déclarée synchronized et dérivant de la classe thread. Et même si je faisais deux threads, un pour la fenêtre et un pour la connection, celui-ci attendant avec wait que le champ dont j'ai besoin soit ok, je ne saurai quand même pas faire attendre mon MAIN.
 
Mon problème est de faire attendre le MAIN, et c'est ça qui me pose problème.

Reply

Marsh Posté le 20-02-2006 à 13:12:34    

Tu n'a qu'a pas attendre dans le main..
 
Ya rien a mettre en général dans le main.. enfn chez moi ya jamais grand chose, juste l'instanciation de ma classe principale quoi.


Message édité par milootooloo le 20-02-2006 à 13:13:23
Reply

Marsh Posté le 20-02-2006 à 13:26:33    

Flitz a écrit :

Salut
 
ça vous paraît facile mais pour moi ça ne l'est pas ! Je suis débutant


ça tombe bien, je t'ai filé plein de tutoriaux, dont celui de sun qui commence par expliquer ce qu'est un thread, c'est pas assez débutant ça ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-02-2006 à 13:40:54    

A la rigueur, Thinking in Java. Je ne sais pas s'il a été actualisé pour 1.5, mais les principes restent valables.
 
Le tuto de Sun ne me semble pas super didactique par contre...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-02-2006 à 21:50:16    

Flitz a écrit :

Salut
 
ça vous paraît facile mais pour moi ça ne l'est pas ! Je suis débutant


 
Et bien quand on est débutant on commence par apprendre, pour ne pas partir sur de mauvaises bases.
Or faire attendre le thread de l'interface graphique "ça se fait pas". Et d'autre part, on ne place pas son code dans la méthode main.
Je te conseille de reprendre des tutoriels sur java depuis le début, histoire de savoir de quoi on parle.
 
Bon courage pour la suite.
 
 

Reply

Marsh Posté le 20-11-2006 à 17:39:49    

Tu nbe peut pas simplement mettre un Listener Sur le bouton ?  
genre un simple "ActionListener"
 
Dans lequel  tu change le boolean Ou bien simplement qui appel une autre methode qui fait ce que tu veux faire ^_°  
(lol Oui je sais c'est un petit peut sa le principe des listener :p  :pt1cable: :d )
 .. comme sa ta page ne seras remise a jours que quand tu clic sur le bouton ......
 
????????????
enfin moi ce que j'en dit hein ^_°  je débute aussis mais je suis d'avis que tu apprenne avant de commencer sinon ton programme seras fait a la nimporte nawak
 
Puis regarde bien L'API tu trouveras plein de trucs utiles dedans (pour autans que tu comprenne l'anglais ^_°)
 
(scusez moi pour l'orthographe :s )


Message édité par snooooopy8 le 20-11-2006 à 17:45:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed