Attendre un évènement pour continuer l'exécution de mon programme

Attendre un évènement pour continuer l'exécution de mon programme - Java - Programmation

Marsh Posté le 11-07-2007 à 22:15:36    

Bonsoir,
 
Alors je pense que mon problème peut être résolu via wait() mais je ne vois pas comment.
Dans ma classe principale j'instancie une nouvelle classe (qui est en fait une fenêtre). Ce que je voudrais c'est que cette classe principale attende l'exécution d'un bouton de ma fenêtre afin de que cette fenêtre/classe envoie les infos adéquates pour que ma classe principale puisse continuer sereinnement.
 
Merci pour votre aide et bonne soirée.

Reply

Marsh Posté le 11-07-2007 à 22:15:36   

Reply

Marsh Posté le 12-07-2007 à 08:34:31    

Code :
  1. jButton.addActionListener(new ActionListener() {
  2.             public void actionPerformed(ActionEvent evt) {
  3.                 TrucKiVaBien(evt) ; //envoie les infos
  4.                 fenetre.dispose() ;  // dégage la fenetre et rend la main au main
  5.             }
  6.         });


en rendant la nouvelle fenetre modale. (mais je sais plus comment on fait  :whistle: )

Reply

Marsh Posté le 12-07-2007 à 08:42:24    

Ouaip c'est bon c'est ce que j'ai fait.
 
Merci :)

Reply

Marsh Posté le 16-09-2009 à 10:42:21    

Bonjour à vous,
 
Je sais que le problème remonte à il y a près de 2 ans, mais je me trouve aujourd'hui dans un cas similaire et je n'ai pas entierement compris la solution...
 

Citation :

Dans ma classe principale j'instancie une nouvelle classe (qui est en fait une fenêtre). Ce que je voudrais c'est que cette classe principale attende l'exécution d'un bouton de ma fenêtre afin de que cette fenêtre/classe envoie les infos adéquates pour que ma classe principale puisse continuer sereinnement.


 
Dans ma classe principale :
 
 

Code :
  1. boolean validateLogin = service.validateLogin(pathServer);


       
Dans ma classe contenant ma fonction "validateLogin":
 

Code :
  1. public boolean validateLogin(String pathServer) {
  2.         final String sessionID = login(pathServer);
  3.  if (!sessionID.equals("" )){
  4.   connected = true;
  5.  }
  6.  return connected;
  7. }


 

Code :
  1. public String login(final String pathServer) {
  2.   final JFrame jFrame = new JFrame();
  3.   JButton jButton = new JButton();
  4.   jButton.addActionListener(new ActionListener() {
  5.    public void actionPerformed(ActionEvent arg0) {
  6.     if (!login.getSessionID().equals("" )){
  7.      sessionID = login.getSessionID();
  8.     }
  9.    }
  10.   });
  11.   jFrame.add(jButton);
  12.   jFrame.setEnabled(true);
  13.   jFrame.setVisible(true);
  14.  }


 
Ce que j'aimerai, c'est que ma classe principale attende l'evenement du bouton affiché dans "login" pour continuer... Comment m'y prendre?
 
Merci d'avance!

Reply

Marsh Posté le 16-09-2009 à 13:24:11    

je suis pas sur que le problème soit traité dans le bon sens la...

 

que fait ton application, qu'est ce que tu cherches à faire?


Message édité par pataluc le 16-09-2009 à 13:24:20
Reply

Marsh Posté le 16-09-2009 à 19:07:11    

Ta fonction login n'est pas sensée renvoyer un String?
 
En fait si je comprend bien, tu devrais utiliser une boîte de dialogue modale qui renvoie une valeur et bloque l'exécution du thread tant que l'utilisateur n'a pas fais un choix.
 
Sinon tu dois changer la structure de ton programme et utiliser des callbacks qui seront appelés lorsque l'utilisateur a cliqué sur un bouton.

Reply

Marsh Posté le 17-09-2009 à 15:28:41    

J'ai oublié de coller une partie du code en supprimant les lignes inutiles.
Biensur, ma fonction login retourne "sessionID", qui est une String.
 
Effectivement, je pense que ma solution se trouve dans les fenetres modales.
Je vais essayer tout ça.
 
Merci pour votre aide!


Message édité par ermund le 17-09-2009 à 15:29:45
Reply

Sujets relatifs:

Leave a Replay

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