Bonjour,
Voilà c'est la première fois que je programme avec des threads et j'ai un souci dans mon programme qui je pense est juste du à ma méconnaissance...
Voilà j'ai une méthode qui est lancée , qui fait son petit bazar (elle met des boutons enabled et les colorie) puis elle doit attendre le clic sur l'un des boutons coloriés avant de continuer. J'ai donc proceder comme cela :
Et dans le mouseListener d'un bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public synchronized TacheSimulee setSelectionnable(ArrayList<TacheSimulee> taches){ Component[] comp=treePanel.getComponents(); //premiere boucle on met en evidence les boutons que l'on peut selectionner for(int i=0; i<comp.length;i++){ SimulationToggleButton btn=(SimulationToggleButton)comp[i]; if (taches.indexOf(btn.tache)!=-1){ btn.proposeChemin(); } } while(AdaptateurP.AdaptateurSimulation.cheminChoisi()==null){ try{ wait(); } catch(Exception e){ System.out.println(e); } } return AdaptateurP.AdaptateurSimulation.cheminChoisi(); }
Quand je fais des print je passe bien par mon mouse Listener qui fait un notifyAll() mais après rien ne se passe l'application reste bloquée au wait() et pourtant la méthode cheminChoisi() ne renvoit plus null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public synchronized void mouseClicked(MouseEvent e){ AdaptateurP.AdaptateurSimulation.setCheminChoisi(tache); notifyAll(); }
Quelqu'un peut-il m'éclairer? N'hésitez pas à me proposer une autre méthode si la mienne vous parait tordue![]()
Merci!
Partager