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

Composants Java Discussion :

Lister le contenu d'un répertoire dans un Jlist ou JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut Lister le contenu d'un répertoire dans un Jlist ou JTable
    Bonjour les amis,
    Ce code liste le contenu d'un repertoire :
    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
    import java.io.File;
     
    class ListerFichier{
    	public static void main(String args[]){
    		String rep ="C:/temp";
    		File fichier1 = new File(rep);
    		if (fichier1.isDirectory()){
    			System.out.println("Répertoire : " + rep);
    			String str[] = fichier1.list();
    			for (int i=0; i<str.length; i++){
    			File fichier2 = new File (rep + "/" + str[i]);
    			if (fichier2.isDirectory()){
    				System.out.println("Répertoire :" + str[i]);
    			}
    			else {
    				System.out.println(str[i]);
    			}
    			}
    		}
    		else {
    			System.out.println("Ce n'est pas un répertoire");
    		}
    	}
    	}
    Je souhaite lister le contenu de ce répertoire dans un Jlist ou Jtable.

    Quelqu'un pourrait-il me mettre sur la piste ?

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il te suffit de créer directement ta JList (resp ta JTable) à partir du retour de la méthode listFiles() de la class File. Puis de créer un renderer dont le but est d'afficher le nom du fichier.
    La création de la JList
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    File[] dirContent = fichier1.listFiles();
    JList list = new JList(dirContent);
    list.setDefaultListCellRenderer(new MyRenderer());
    Le renderer (en se basant sur le fait que le contenu de ta JList ne contient que des objets de type File).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class MyRenderer extends DefaultListCellRenderer {
     
        private JLabel label;
        public MyRenderer () {
            label = new JLabel();
        }
        public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            File f = (File) value;
            label.setText(f.getName());
            return label;
        }
    }

  3. #3
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Merci sinok;
    finalement j'ai opté pour une JTable. Mes fichiers sont listés mais pas dans la JTable
    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
    30
    31
    32
    33
    34
    public JButton getOuvrirSource() {
    		if (OuvrirSource == null){
    			OuvrirSource = new JButton(". . .");
    			OuvrirSource.setBounds(530, 40, 40, 22);
    			OuvrirSource.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent e) {
    					// TODO Auto-generated method stub
    					fc = new JFileChooser(TxtRepSource.getText());//recupération du chemin
    					fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//Seul le répertoire est selectionné ici
    					//fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    					int returnVal = fc.showOpenDialog(FILExpert.this);
    					if (returnVal == JFileChooser.APPROVE_OPTION)
    					{
    						ChoosedFile = fc.getSelectedFile().getPath();//Le chemin est récupéré ici
    						TxtRepSource.setText(ChoosedFile);
    						File fichier1 = new File(ChoosedFile);
    						if (fichier1.isDirectory()){
    							String str[] = fichier1.list();
    							for (int i=0; i<str.length; i++){
    								File fichier2 = new File (ChoosedFile + "/" + str[i]);
    								if (fichier2.isDirectory()){
    									System.out.println("Répertoire :" + str[i]);
    								}
    								else{
    									System.out.println(str[i]);
    								}
    							}
    						}
    					}
    				}
    			});
    		}
    		return OuvrirSource;
    	}
    Comment faire pour les faire afficher dans la Table ?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est exactement le même concept, sauf qu'il te faut créer ton propre modèle héritant d'AbstractTableModel se basant sur ton tableau/ta liste de fichiers.
    Et pour le Renderer il te faut hériter de DefaultTableCellRenderer au lieu DefaultListCellRenderer

  5. #5
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    J'ai crée ma table modele :
    Mais j'avoue que je suis un peu perdu dans mes logiques.
    Serai-ce possible de jeter un coup d’œil sur le fichier joint pour m'aider

    Encore merci.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Direction le tutoriel de developpez.com sur les JTable.
    Tout y est expliqué.
    http://baptiste-wicht.developpez.com...ing/jtable/#L3

Discussions similaires

  1. Lister le contenu d'un répertoire dans un jar
    Par Iron Bull dans le forum Général Java
    Réponses: 6
    Dernier message: 19/08/2009, 16h10
  2. Lister le contenu d'un répertoire présent dans le classpath
    Par kaptainflam dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/08/2007, 16h08
  3. Lister le contenu d'un dossier dans une ListBox
    Par zidenne dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2005, 12h51
  4. Lister le contenu d'un répertoire
    Par rob_57 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/10/2005, 19h16
  5. Lister le contenu d'un répertoire distant
    Par dody dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 17h23

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