Bonjour,

Dans mon application j'ai un bouton qui permet de rechercher dans un repertoire donné tous les fichier d'une certaine extension.

Pour cela j'utilise la methode listFiles() de FileUtilis.

Pour ne pas bloquer mon application pendant ce traitement j'utilse un thread qui execute la recherche :

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
20
21
22
23
24
25
26
27
28
29
 
public class ThreadRecherche extends Thread{
 
	public ThreadRecherche(){
 
	}
 
		public void run()
              {
 
			String path = "C:\\Users\\Thomas\\";
 
 
			File fichier = new File(path);
			String[] ext = new String[1];
			ext[0]="doc";
		  Collection<File> CollArg =    FileUtils.listFiles(fichier, ext, true);
 
			  Iterator<File> it = CollArg.iterator();
			  while (it.hasNext()) 
			  {
			    File f = it.next();
 
			    System.out.println("path :"+ f.getAbsolutePath());
 
			      }
	  }	
 
}
Ensuite dans l'action du bouton :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
 
                   if (e.getSource()==this.recherche){
 
                        ThreadRecherche t = new ThreadRecherche();
			t.start();
                      }
}
Ceci semble bien marcher mais en cherchant j'ai trouvé la classe SwingWorker.

Je voudrais juste savoir si la classe SwingWorker est plus adaptée pour mon utilisation ? Quels sont les avantages , les intérêts de SwingWorker ?

Merci de votre aide