Recherche de fichier dans un thread
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:
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:
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