Bonjour,

Je fais un travail en java pour on école où nous avons du commencer par développer un programme en commande texte, puis maintenant on nous demande d'ajouter un interface graphique qui réutilise les commandes du premier programme.
Or à un moment, le programme texte me retourne une liste de nom, que je fais apparaître dans ma gui, mais j'aimerais que le programme texte attende le résultat du choix de l'utilisateur dans la gui, défini par un clique sur un bouton, mais je n'y arrive pas.

J'ai essayé de mettre un wait(), un sémaphore, une queue, mais chaque fois, cela bloque la gui et non pas la commande texte.

Le programme texte et la gui sont 2 threads différents.

Code :
Bouton de la gui qui lance ma méthode download :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
peerServerButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				pc1.download(true);
			}
		});
Code du programme texte :
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
 
int choix = -1;
				if(isGui){
					try {
						//available.acquire(); OU
						synchronized (this) {
							this.wait();
						}
						choix = choices[choices.length];
					}
					catch (InterruptedException e) {
						choix = choices[choices.length]; // en cas de wait()
					}
				}
				else{
					do {
						choix = scanner.nextInt();
					} while (choix > nbPS || choix < 0);
				}
Comment puis-je faire ?