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 :
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.
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; }
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.
Partager