Bonjour malgré mes recherches sur le forum et sur la faq je n'arrive pas à résoudre un problème, il s'agit plus d'un problème de compréhension qu'autre chose, je suis ultra débutant en java.

  • Dans mon application je réalise un traitement long ( parcourt et listing de répertoires ) qui me retourne une liste de fichier correspondant à un critère, pour cette partie aucun problème.
  • Cette opération étant relativement longue je l'ai mise dans un Thread pour éviter le blocage de mon application, et je lance un panel d'attente ( trouvé ici http://gfx.developpez.com/tutoriel/java/swing/wait/ ) le temps du traitement.


ça fonctionne, sauf que pour la bonne exécution de mon programme je dois attendre le retour de ma recherche ( indiqué dans le premier point ), mais l'usage d'un thread ne me permet pas de récupérer la liste complète

j'image ici le traitement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public ArrayList<File> traitement(File f, String r){		
	Thread thread = new Thread() {
 
		@Override
		public void run() {
			// affichage du panel d'attente
			// parcourt récurssif des fichiers et ajout à l'arraylist
			// fermeture du panel d'attente
		}
	};
	thread.start();
	return liste;
}
En regardant à droite et gauche je suis tombé sur join(), que j'ai appliqué à mon thread, la oui ma liste n'est retournée qu'a la fin de mon Thread, mais le panel d'attente du coup ne s'affiche plus.

Comment dois je mis prendre pour attendre le résultat de ma recherche, et afficher mon panel d'attente ?

Merci pour l'aide que les utilisateurs du forum pourront m'apporter.