Arborescence

cs_fil59 Messages postés 1 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 26 août 2004 - 26 août 2004 à 15:20
schizogames Messages postés 18 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 12 juillet 2005 - 26 août 2004 à 18:52
Programmeur débutant en java, je souhaite faire apparaitre dans une fenetre l'arborescence du disque dur afin de choisir le répertoire dans lequel je veux créer un fichier.Comment peut on arriver à cela??

4 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
26 août 2004 à 15:28
utilise un JFileChooser
0
Frouf85 Messages postés 106 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 7 octobre 2004
26 août 2004 à 17:16
Allez je suis sympa, je te file une partie mais ce code n'est pas complet (il ne permet pas l'affichage) et si tu possède une trop grande arborescence, il te fera une une execption du type java.lang.OutofMemory.

Ce qu'il faudrait faire c'est la contruire au fur et à mesure en mettant des ecouteurs sur chaque noeud.

Mais bon à toi de te débrouiller:

public JTree arborescenceDossier(){
racine= new DefaultMutableTreeNode(new NoeudTitreDossier(dirRacine.getName(),dirRacine.getAbsolutePath()),true);
File[] roots = dirRacine.listFiles();
for (int i = 0 ; i<roots.length ; i++)
{
if(roots[i].isDirectory()){
racine.add(getSubDirs(roots[i]));
}
}

arbre=new JTree(racine);
arbre.addMouseListener(new EcouteurSourisArborescence(this));
arbre.setCellRenderer(rc);
arbre.setCellEditor(ec);
return arbre;
}

/**
* 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
*/
private DefaultMutableTreeNode getSubDirs(File root){
//on créé un noeud
DefaultMutableTreeNode noeud= new DefaultMutableTreeNode(new NoeudTitreDossier(root.getName(),root.getAbsolutePath()),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 = 0 ; j<list.length ; j++){
if (list[j].isDirectory()){
noeud.add(getSubDirs(list[j]));
}
}
}
return noeud;
}


Frouf
0
Frouf85 Messages postés 106 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 7 octobre 2004
26 août 2004 à 17:22
En fait, je ne connaissais pas le JFileChooser et c'est pas mal aussi!
Frouf
0
schizogames Messages postés 18 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 12 juillet 2005
26 août 2004 à 18:52
ben oui tout est déjà fait dans JFileChooser et en plus y'a pas de java.lang.OutOfMemory.
JThree c'est plus pour faire des arborescences virtuelles dans un logiciel pour ordonner des données.
ex :
fruit--pomme
--banane
légume--navet
.....
bon vous avez compris

Moi je l'utilise pour mon éditeur de deck de carte Magic. Le jeu entier sera bientôt disponible et tout en java.
SchizoGames
0
Rejoignez-nous