begin process at 2010 02 10 02:02:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > ARBORESCENCE DISQUE TRIEE AVEC JTREE

ARBORESCENCE DISQUE TRIEE AVEC JTREE


 Information sur la source

Note :
6,83 / 10 - par 6 personnes
6,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Swing Niveau :Débutant Date de création :28/11/2003 Vu / téléchargé :7 251 / 1 155

Auteur : FredRaid

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

But : obtenir une arborescence de vos lecteurs sans que cela ne dure des heures (petits malins qui avez des Go de données sur vos immenses disques). J'utilise un MAX_LEVEL permettant de ne descendre que d'un nombre de niveau définit dans les arborescence. Ceci permet de limiter le temps de chargement. Une fois le JTree affiché, on écoute les évenements et notamment TreeExpanded qui lancera une recherche dans l'arborescence ouverte jusqu'à MAX_LEVEL... Et ainsi de suite.
Pour conserver l'objet FILE associé à chaque noeud j'ai créé une sous-classe FSNode qui me permet de conservé l'info.
J'ai également agrémenté mon code d'un Quick Sort (Tri rapide) afin d'obtenir la liste des éléments triée.

Enfin j'ai intégré mon JTree dans un JScrollPane afin de pouvoir utiliser les ascenceurs...

Bon j'espère qu'il y a pas trop de bétises dans ce code, cela fait seulement deux à trois semaines que je fais du JAVA... Toutes mes excuses sinon et les commentaires seront les bienvenus.



 Conclusion

Code écrit avec JBuilder (le zip contient le répertoire du Projet).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   JTreeFolder
    •   bak
      •   FSoft
        • JTreeFolder.java~44~Télécharger ce fichier [Réservé aux membres club]6 600 octets
        • JTreeFolder.java~45~Télécharger ce fichier [Réservé aux membres club]6 600 octets
        • JTreeFolder.java~46~Télécharger ce fichier [Réservé aux membres club]6 598 octets
        • JTreeFolder.java~47~Télécharger ce fichier [Réservé aux membres club]6 667 octets
        • JTreeFolder.java~48~Télécharger ce fichier [Réservé aux membres club]6 657 octets
        • JTreeFolder.java~49~Télécharger ce fichier [Réservé aux membres club]6 718 octets
        • JTreeFolder.java~50~Télécharger ce fichier [Réservé aux membres club]6 787 octets
        • JTreeFolder.java~51~Télécharger ce fichier [Réservé aux membres club]6 766 octets
        • JTreeFolder.java~52~Télécharger ce fichier [Réservé aux membres club]6 744 octets
        • JTreeFolder.java~53~Télécharger ce fichier [Réservé aux membres club]6 720 octets
    •   classes
      •   FSoft
        • JTreeFolder$1.classTélécharger ce fichier [Réservé aux membres club]1 379 octets
        • JTreeFolder$FSNode.classTélécharger ce fichier [Réservé aux membres club]1 110 octets
        • JTreeFolder.classTélécharger ce fichier [Réservé aux membres club]4 397 octets
      •   package cache
        • FSoft.dep2Télécharger ce fichier [Réservé aux membres club]3 926 octets
    • JTreeFolder.jpx~
    •   src
      •   FSoft
        • JTreeFolder.javaTélécharger ce fichier [Réservé aux membres club]Voir ce fichier6 846 octets
        • JTreeFolder.java~1~Télécharger ce fichier [Réservé aux membres club]3 087 octets
        • JTreeFolder.java~2~Télécharger ce fichier [Réservé aux membres club]3 087 octets
        • JTreeFolder.java~3~Télécharger ce fichier [Réservé aux membres club]4 564 octets
    • JTreeFolder.jpxTélécharger ce fichier [Réservé aux membres club]2 661 octets
    • JTreeFolder.jpx.localTélécharger ce fichier [Réservé aux membres club]1 889 octets
    • JTreeFolder.jpx.local~Télécharger ce fichier [Réservé aux membres club]1 682 octets

Télécharger le zip


 Sources de la même categorie

JLABELIMAGE : GESTION D'UNE IMAGE EN ARRIÈRE-PLAN par bob22mael
Source avec Zip SÉLECTEUR DE DATES MULTIPLES, ORIGINE UHRAND par William44290
RECHERCHE D'ELEMENTS DANS UNE JLIST par Ze_Hulk
Source avec Zip Source avec une capture PROGICIEL DE LOCATION DE VOITURE par SoftDeath
Source avec Zip Source avec une capture CALENDRIER ET HORLOGE AVEC LA LIBRAIRIE ORG.JDESKTOP.SWINGX par Cornellus1985

Commentaires et avis

Commentaire de zegamemaster le 30/03/2004 12:48:04

Je sais pas qui a mis deux comme note, mais moi, je trouve ca cool, ca m'a bien aider pour en faire une d'ailleur, j'ai aps encore bien tester remarque, mais a premiere vue, ca a l'air bien et rapide.

Commentaire de aishu le 09/06/2004 14:09:36

Bien ton code, d'ailleurs c'est le meilleur que j'ai trouvé... Mais malgré tout il y a un petit problème... Au moment de faire ton Expansion, tu ajoute le noeud et le probleme est que si tu fais plusieurs Expansion sur un même noeud, tu verra que les sous fichiers apparaisent autant de fois que tu as fais d'Expansion...Il faudrait peut-être faire un remove (tte l'opération en sens inverse : à chaque fois que tu fais un treeCollapsed, tu supprime les fichiers ajoutés) Ca pourrait être une solution... En vois tu une autre plus efficace ?? Ca me rendrait bien service... Merci !!

Commentaire de yannickdh le 16/06/2004 16:04:21

tres bien le code,c vrai que c'est le plus rapide, mais auriez vous la solution a mettre dans collapsed pour supprimer les noeuds une fois que l'on referme? merci beaucoup

Commentaire de mandark le 11/03/2006 12:54:05

Super code !
Mais j'ai un bug ...
Je suis sur un portable qui à un lecteur de cartes mémoires qui vous l'aurez devinné n'a pas forcément une carte mémoire dedans :X
Donc quand le programme liste les roots il tombe dessus et me lance le message windaube "Il n'y a pas de disque dans le lecteur. Insérez un disque dans le lecteur K:"
J'ai essayé de mettre un "if(drive[i].canRead()){" mais il  me lance le message au moment du il fait son canRead donc je ne sais pas comment tester ca ...

Donc -1 pour "bug non géré" ca faut 9 ! (o;

Commentaire de Thiouwz03 le 12/06/2006 15:26:24

Salut tout le monde, merci pour ton code FredRaid, ca me fait gagner beacoup de temps.
En effet je découvre aujourd'hui les JTree :)
Bon, je me suis cassé la tête sur le problème du lecteur de disquette, alors l'endroit ou l'exception peut être détectée est dans addFolder lorsque l'on fait listFiles sur driveOrDir :
fileList = driveOrDir.listFiles();

vous verez dans la doc, listFiles est sensé levé une SecurityException "SI" un SecurityManager est présent, et voila le problème, je n'arrive pas à un créer un.

Sinon, pour le bug relevé par Aishu sur l'Expension, il suffit de tester dans addFolder si le noeud a déjà des fils ou non :

private void addFolder(File driveOrDir, DefaultMutableTreeNode node, int level) {
    File[] fileList;
    fileList = driveOrDir.listFiles();

    if (fileList != null) {
sortFiles(fileList); // on tri les elements
    }

    // on ne cherche pas plus loin que le niveau maximal définit
    if (level > MAX_LEVEL - 1) {return;}
    // pour chaque élément
    if (node.getChildCount() == 0) {
try {
            for (int i = 0; i < fileList.length; i++) {
        // en fonction du type d'élément
        if (fileList[i].isDirectory()) {
        // si c'est un répertoire on créé un nouveau noeud
                FSNode dir = new FSNode(fileList[i].getName(), fileList[i]);
        node.add(dir);
        // on recherche les éléments (récursivité)
        addFolder(fileList[i], dir, ++level);
    }
    if (fileList[i].isFile()) {
        // si c'est un fichier on ajoute l'élément au noeud
        node.add(new FSNode(fileList[i].getName(), fileList[i]));
    }
        }
    }
    catch (NullPointerException e) {
// rien
    }
}

Commentaire de mzhunix le 21/04/2008 11:05:29

Bonjour,
solution pour le problème relevé par yannickdh.

il faut ajouter un attribut "IsFirstExpanded" de type boulean à la classe FSNode qui sera à false par défaut et qu'on mettra à true lors à la fin de l'évenement "Expansion".
tester ensuite cette attribut dans au début de l'événement "Expansion" : si true ne rien faire sinon faire les appels nécessaire.

je n'ai vu tout le code, donc je vous ai donné ici la marche à suivre pour.
Bon courage.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales