Cette source sert a générer la partie gauche de l explorateur windows ;)
la partie droite viendra apres !!!
Source / Exemple :
import java.awt.Dimension;
import java.io.File;
import javax.swing.*;
import javax.swing.tree.*;
/**
- Classe permettant d afficher l'arborescence des disque dur
- /
public class Explorer extends JFrame
{
private File[] _roots;
private JTree _dirs;
public Explorer()
{
// taille de la fenetre
setSize(500,500);
// on recupère les lecteurs
_roots = File.listRoots();
// on définit notre premier noeud
DefaultMutableTreeNode racine = new DefaultMutableTreeNode("Poste de travail",true);
// Création du jtree
_dirs = new JTree(racine);
_dirs.setSize(1000,500);
// pour chaque lecteur
for (int i = 1 ; i<_roots.length ; i++)
{
// on recupère son contenu grace a getSubDirs
DefaultMutableTreeNode root = getSubDirs(_roots[i]);
// et on l ajoute a notre premier noeud
racine.add(root);
}
// on met le jtree dans un jscrollpane
JScrollPane scroll = new JScrollPane(_dirs);
scroll.setPreferredSize(new Dimension(600,600));
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
// on ajoute notre jscrollpane
getContentPane().add(scroll);
}
/**
- Méthode récursive permettant de récupérer
- tous les fichiers et sous dossiers d un autre
- @param root un File qui représente le lecteur ou le repertoire de départ
- @return DefaultMutableTreeNode
- /
public DefaultMutableTreeNode getSubDirs(File root)
{
// on créé un noeud
DefaultMutableTreeNode racine = new DefaultMutableTreeNode(root,true);
// on recupère la liste des fichiers et sous rep
File[] list = root.listFiles();
if ( list != null)
{
// pour chaque sous rep on appel cette methode => recursivité
for (int j = 1 ; j<list.length ; j++)
{
DefaultMutableTreeNode file = null;
if (list[j].isDirectory())
{ file = getSubDirs(list[j]);
racine.add(file);
}
}
}
return racine;
}
//main
public static void main(String[] args)
{
Explorer ex = new Explorer();
ex.setVisible(true);
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.