[JTREE] ARBORESSANCE D'UN DISQUE DUR SIMPLE ET RAPIDE

cs_Waldo2188 Messages postés 142 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 20 mai 2008 - 10 mars 2005 à 10:43
selir Messages postés 1 Date d'inscription dimanche 3 septembre 2006 Statut Membre Dernière intervention 16 avril 2009 - 16 avril 2009 à 11:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30017-jtree-arboressance-d-un-disque-dur-simple-et-rapide

selir Messages postés 1 Date d'inscription dimanche 3 septembre 2006 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 11:29
Beaucoup trop de ligne a mon gout et pas mal de chose inutile. J'ai épuré ton code waldo.
import java.awt.BorderLayout;
import java.io.File;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class MainWindow extends JFrame {

private static final long serialVersionUID = 1L;
private JTree myTree;
private DefaultTreeModel MyDefaultTree;

public static void main(String[] args) { new MainWindow(); }

public MainWindow(){
super("Explorateur");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

MyDefaultTree = new MyTreeModel();
myTree = new JTree(MyDefaultTree);
myTree.addTreeExpansionListener(new myExpensionListener());
myTree.addTreeSelectionListener(new myTreeSelectionListener());

getContentPane().add(new JScrollPane(myTree),BorderLayout.CENTER);
setSize(600,400);
setVisible(true);
}

class myExpensionListener implements TreeExpansionListener {

public myExpensionListener() { super(); }

public void treeExpanded(TreeExpansionEvent e) {
addChildren((DefaultTreeModel)((JTree)e.getSource()).getModel(),(DefaultMutableTreeNode)e.getPath().getLastPathComponent());
}

public void treeCollapsed(TreeExpansionEvent e) { }
}

class MyTreeModel extends DefaultTreeModel {

public MyTreeModel() {
super(new DefaultMutableTreeNode(new File("C:\")));
addChildren(this,(DefaultMutableTreeNode)getRoot());
}
public boolean isLeaf(Object e) {
return !((File)((DefaultMutableTreeNode)e).getUserObject()).isDirectory();
}
}

class myTreeSelectionListener implements TreeSelectionListener {

public myTreeSelectionListener(){ super(); }

public void valueChanged(TreeSelectionEvent arg0) {

DefaultMutableTreeNode f = (DefaultMutableTreeNode) arg0.getPath().getLastPathComponent();
File ff = (File) f.getUserObject();

if(!ff.isDirectory()) {/*action si ca n'est pas un répertoire*/}
else {/*action si c'est un répertoire*/}

System.out.println(ff.isDirectory());
System.out.println(ff.getAbsolutePath());
}
}

protected static void addChildren(DefaultTreeModel treeModel,DefaultMutableTreeNode parentNode) {

File selectedFile = (File)parentNode.getUserObject();
parentNode.removeAllChildren();
treeModel.nodeStructureChanged(parentNode);

File[] children = selectedFile.listFiles();

int x = 0;

for(int i=0;i<children.length;i++){
if(children[i].isDirectory()){
treeModel.insertNodeInto(new DefaultMutableTreeNode(new File(children[i].getAbsolutePath())),parentNode,x);
x++;
}
}

for(int i=0;i<children.length;i++){
if(!children[i].isDirectory()){
treeModel.insertNodeInto(new DefaultMutableTreeNode(new File(children[i].getAbsolutePath())),parentNode,x);
x++;
}
}
}
}
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
3 mars 2008 à 15:28
si tu l'adapte en JSP tu ne pourras que lister l'arborescence du serveur etant donne que le code JSP s'execute cote serveur
si tu veux faire la meme chose, tu as le JS, ou encore les applets
amrouch14 Messages postés 1 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 3 mars 2008
3 mars 2008 à 15:24
comment on peut adapter ce code pour fonctionner sur des pages jsp ???
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
8 juin 2005 à 14:39
merci
mais meme si le code marche impecablement je suis allergique a ces representation
en attendant je vais essay de developper le mien
cs_Waldo2188 Messages postés 142 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 20 mai 2008
6 juin 2005 à 23:22
Pour ce qui est de l'affichage des autre disque dur, c'est un peu compliqué à expliqué. Mais, dés que j'ai le temps, je met cette source à jour!
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
6 juin 2005 à 20:14
je meilleur jtree que g vu mais je voudrais savoir comment modifier ton code pour que tout les disque dur s'affiche ?
cs_Waldo2188 Messages postés 142 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 20 mai 2008
21 mars 2005 à 10:33
Voila là ca devrais mieux marcher!
Et comme tu la demandé j'ai aussi mis un zip!
dufour137 Messages postés 45 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 31 octobre 2005
14 mars 2005 à 17:17
L'idée est bonne, mais il manque des classes pour que le script fonctionne bien, (import fr.ca.greencam.IR2.Interface;) quand t'auras ajouté ça, fait aussi un zip stp.
J'attend ta correction.
++
cs_Waldo2188 Messages postés 142 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 20 mai 2008
10 mars 2005 à 10:43
J'attend vos commentaire
A++
Rejoignez-nous