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 :
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
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()); } } }
Ceci semble bien marcher mais en cherchant j'ai trouvé la classe SwingWorker.
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(); } }
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
Partager