Comment stopper temporairement une tâche java

Babybel -  
 Babybel -
Bonjour,

Le programme que je développe dispose d'une interface principale que je dois garder ouverte à tout moment. Lors d'un clic sur un bouton, une fenêtre secondaire s'ouvre, avec laquelle l'utilisateur peut interagir. J'aimerais que les tâches qui suivent l'ouverture de la fenêtre secondaire s'arrêtent tant que celle ci est ouverte...

button.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                	InterfaceTraitement spi = new InterfaceTraitement();  
              
                	directory = spi.retrieveDirectory;
                	System.out.println(directory);
                    }
                   
                });

Le problème étant que la variable "retrieveDirectory" n'est définie qu'à la fin du traitement de la fenêtre secondaire (l'interface 2)

1 réponse

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    à ce moment là, il faut ajouter un signal et donc une fonction qui sera appelé lorsque ta deuxième fenêtre se fermera.
    1
    1. Babybel
       
      OK merci je vais voir ce que je peux faire
      0
    2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      sauf si une méthode du genre "spi.wait()" existe.
      0
    3. Babybel
       
      oui oui cette méthode existe, mais elle arrête le mauvais thread. Ce qu'il me faudrait, c'est un genre de "verrouillage" de la fenêtre principale tant que la fenêtre "spi" tourne.
      J'avais pensé à un timer qui check à intervalle régulier si "spi" tourne encore, mais bonjour la qualité du programme...
      0
    4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      dans l'autre sens peut être alors:
      wait(spi);
      si la fonction peut prendre un argument.
      0
    5. Babybel
       
      Ca ne marche pas non plus dans ce sens =/
      0