IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Recherche de fichier dans un thread


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut 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 : 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

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la classe swingworker permet de lancer un traitement long depuis le thread EDT(event dispatch thread). En plus d'exécuter le traitement en parallèle, elle permet une série de fonctionnalité supplémentaire, comme le suivi d'avancement, la notification de fin de travaile à l'edt, etc. Plus d'infos ici.

Discussions similaires

  1. [Système][fichier] recherche de fichier dans tout le disque dur
    Par helonear dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 15/12/2010, 10h43
  2. Recherche de fichiers dans un dossier et Threads
    Par rambc dans le forum Général Python
    Réponses: 3
    Dernier message: 27/06/2009, 17h17
  3. [FTP] Rechercher des fichiers dans un site FTP par PHP
    Par jack_1981 dans le forum Langage
    Réponses: 31
    Dernier message: 03/08/2006, 13h37
  4. rechercher des fichiers dans tous les dossiers
    Par nitteo dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2006, 18h08
  5. Recherche de fichiers dans des sous répertoires
    Par Mimi Bulles dans le forum Langage
    Réponses: 8
    Dernier message: 25/04/2006, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo