Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : C koi un vector ? [ Archives / Divers ] (fmazoue)

samedi 24 juillet 2004 à 18:38:55 | C koi un vector ?

fmazoue

Salut tout le monde !
Je suis encore un novice dans java et je me demandais c'est quooi un vector parce que j'en ai déjà entendu parlé ou vu dans des codes mais je vois pas précisement ce que c'est ! Est-ce que c'est une sorte de tableau dynamique ?


Sinon moi en ce moment j'essaye de me fair eun petit explorateur, et franchement j'ai beaucoup de mal ! J'ai déjà un début d'arborescence que j'ai fait en modifiant une source d'ici !

package XploS.model;

import java.lang.*;
import java.io.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.HeadlessException;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Iterator;

/**
* @author Frederic FOURGEOT
* @version 1.0
*/

public class JTreeFolder extends JFrame {

protected DefaultMutableTreeNode racine;
protected JTree tree;
protected JScrollPane scrollpane;
final static int MAX_LEVEL = 1; // niveau max de descente "direct" dans l'arborescence

/**
* Sous-classe FSNode
* @author Frederic FOURGEOT
* @version 1.0
*/
private class FSNode extends DefaultMutableTreeNode {
File file; // contient le fichier lié au noeud

/**
* Constructeur non visible
*/
private FSNode() {
super();
}

/**
* Constructeur par initialisation
* @param userObject Object
*/
FSNode(Object userObject) {
super(userObject);
}

/**
* Constructeur par initialisation
* @param userObject Object
* @param newFile File
*/
FSNode(Object userObject, File newFile) {
super(userObject);
file = newFile;
}

/**
* Definit le fichier lie au noeud
* @param newFile File
*/
public void setFile(File newFile) {
file = newFile;
}

/**
* Renvoi le fichier lie au noeud
* @return File
*/
public File getFile() {
return file;
}
}

/**
* Constructeur
* @throws HeadlessException
*/
public JTreeFolder() throws HeadlessException {
File[] drive;
tree = new JTree();

// création du noeud supérieur
racine = new DefaultMutableTreeNode("Poste de travail");

// création d'un noeud pour chaque lecteur

drive = File.listRoots();
for (int i = 0 ; i < drive.length ; i++) {
FSNode node = new FSNode(drive[i], drive[i]);
addFolder(drive[i], node); // on descend dans l'arborescence du lecteur jusqu'à MAX_LEVEL
racine.add(node);
}



// Gestion d'evenement sur JTree (on écoute les evenements TreeExpansion)
tree.addTreeExpansionListener(new TreeExpansionListener() {
public void treeExpanded(TreeExpansionEvent e) {
// lorsqu'un noeud est ouvert
// on descend dans l'arborescence du noeud jusqu'à MAX_LEVEL
TreePath path = e.getPath();
FSNode node = (FSNode)path.getLastPathComponent();
addFolder(node);
((DefaultTreeModel)tree.getModel()).reload(node); // on recharge uniquement le noeud
}
public void treeCollapsed(TreeExpansionEvent e) {
// lorsqu'un noeud est refermé
//RIEN
}
});


// alimentation du JTree
DefaultTreeModel model = new DefaultTreeModel(racine);
tree.setModel(model);


// ajout du JTree au formulaire
scrollpane = new JScrollPane();
getContentPane().add(scrollpane, BorderLayout.CENTER);
scrollpane.getViewport().add(tree, null);

setDefaultCloseOperation(EXIT_ON_CLOSE);
}

/**
* MAIN
* @param arg
*/
public static void main(String[] arg)
{
JTreeFolder Arbre = new JTreeFolder();
Arbre.setTitle("Arborescence");
Arbre.setSize(300,400);
Arbre.setVisible(true);
}

/**
* Recuperation des sous-elements d'un repertoire
* @param driveOrDir
* @param node
*/
public void addFolder(File driveOrDir, DefaultMutableTreeNode node) {
setCursor(new Cursor(3)); // WAIT_CURSOR est DEPRECATED
addFolder(driveOrDir, node, 0);
setCursor(new Cursor(0)); // DEFAULT_CURSOR est DEPRECATED

}

/**
* Recuperation des sous-elements d'un repertoire
* (avec niveau pour récursivité et arrêt sur MAX_LEVEL)
* @param driveOrDir File
* @param node DefaultMutableTreeNode
* @param level int
*/
private void addFolder(File driveOrDir, DefaultMutableTreeNode node, int level) {
File[] fileList;
fileList = driveOrDir.listFiles();

// on ne cherche pas plus loin que le niveau maximal définit
if (level > MAX_LEVEL - 1) {return;}

// pour chaque élément
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);
}
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) {
// Exception levée lorsque lecteur vide (ex : lecteur disquette) par fileList.length
return;
}
}

/**
* Recuperation des sous-elements d'un noeud
* @param node
*/
public void addFolder(FSNode node) {
setCursor(new Cursor(3)); // WAIT_CURSOR est DEPRECATED
for (int i = 0 ; i < node.getChildCount() ; i++) {
addFolder(((FSNode)node.getChildAt(i)).getFile(), (FSNode)node.getChildAt(i));
}
setCursor(new Cursor(0)); // DEFAULT_CURSOR est DEPRECATED
}

}


En fait dans cette source j'ai modifié un truc pour pas que sa plante si il n'y a pas de disquette dans le lecteur et j'ai enlevé la recursivité si on ouvre un dossier !

voilà donc pour le moment mon arborescence je vais la laisser comme ca et je vais m'attaquer a l'affichage des fichiers ! Par contre je sais pas dans quoi l'affiché : un panel ou une jlist ??? je sais pas parce que un jpanel sa risque d'etre compliqué mais je serai plus libre tandis que une jlist serait peut etre plus simple mais plus restreint ! je me tâte !!



niarf

samedi 24 juillet 2004 à 18:42:21 | Re : C koi un vector ?

fmazoue

Ah oui aussi y a un truc je sais pas comment faire : en fait hje vais avoir une classe je pense pour mon arborescence, une classe pour ma jlist pour l'affichage et une classe qui me permettra de faire l'interface générale (mon luncher !) mai où est ce que je vais mettre ma méthode qui dit que kan je selectionne qqch dans mon arborescenec sa doit actualissé ma jlist ? je dois la mettre dans kel classe ?
niarf

dimanche 25 juillet 2004 à 09:11:33 | Re : C koi un vector ?

gmi19oj19

Membre Club
Un Vector te permet de de stocker un nombre illimité d'objets.
Contrairements aux tableaux, tu peux mettre n'importes quels objets (tu peux mélanger des String avec des JButton, si ça te chante).

Le second avantage est que le Vector s'autoaggrandit si tu dépasse la taille initiale (il me semble que c'est de 150%).

dimanche 25 juillet 2004 à 13:27:28 | Re : C koi un vector ?

fmazoue

ok d'accord ! c le nom aussi qui me portait a confusion : vector~vecteur alors je voyais pas trop qu'estce que sa pouvait etre des vecteur !! :-)

Donc en fait les vecteurs ils faut les utilisé soit si on veut mettre plusieurs objets différents ensemble soit si on veut un tableau dynamique !

niarf

dimanche 25 juillet 2004 à 14:53:49 | Re : C koi un vector ?

gmi19oj19

Membre Club
Réponse acceptée !
En gros, oui.

Mais je te conseille de ne pas mettre tous et n'importe quoi dans un même Vector.

Un Vector peut te permettre, via un énumérateur, d'appliquer une même méthode à tout les objets qui sont dans le vector.

Exemple : si tu développe une application bancaire , tu as des clients : parmi eux, des particuliers et des entreprises (classes héritant de client)

Tu places ces particuliers et ces entreprises dans un même Vector.
Si tu veux le solde des comptes de tout tes clients , tu fais :



Enumeration e = tonVector.elements();
while (e.hasMoreElements()) {
Client c = (Client) e.nextElement());
System.out.println(c.solde());
}//while

mercredi 22 décembre 2004 à 21:33:35 | Re : C koi un vector ?

wangendymion

Petite précision sur la classe Vector : c'est une classe devenue obsolète qui a été remplacée par ArrayList (cf documentation java) ; c'est la même chose en mieux (une liste tabulée qui s'agrandit toute seule).

Il ne faut plus utiliser cette classe dont le nom n'est pas terrible il faut l'avouer. ArrayList est beaucoup mieux, ça permet de savoir ce que c'est, et qu'entre ça implémente l'interface List, et que ça utilise un itérateur (tout comme LinkedList & co).

lundi 2 juin 2008 à 11:09:49 | Re : C koi un vector ?

sheorogath

Membre Club Administrateur CodeS-SourceS
ca depends, les methodes de vector sont synchronized pas celle de ArryList

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"



Cette discussion est classé dans : file, import, noeud, filelist, fsnode


Répondre à ce message

Sujets en rapport avec ce message

Pb de Jtree selectif [ par Horsain ] Bonjour,j'ai pu reprendre le projet sur le site pour faire un Jtree sur le disque dur, le probléme c'est que j'ai essayer de le modifier pour pouvoir [jaxp] affichage du fichier xml sans par courir noeud par noeud [ par djodjoo ] Voilà une partie de mon code :import java.io.*;import javax.xml.parsers.*;import org.apache.crimson.tree.XmlDocument;import org.w3c.dom.*;import org.x entrer le doc xml en paramètre???????? [ par blatifa2008 ] Bonjour,j'ai posé mon problème plusieur fois et j'ai essayer de le résoudre mais je n'arrive à rien svp s'il y a qlq un peut m'aider parce que c'est t arabe [ par nabilwael ] Bonjour , jé réalisé une classe qui permer de parser un fichier XML en arab et enregistrer le resultat dans un fichier texte mais le résultat est diff conversion au type Process?????? [ par merioma ] salut;voilà un programme qui filtre des chemins spécifiés pour avoir les fichiers (.exe), le résultat du filtre se met dans un vecteur ,je veux conver Pb de connexion à un serveur ftp [ par mimi1255 ] Bonjour, j'ai un problème avec mon code pour me connecter au serveur ftp, voici l'erreur:java.net.MalformedURLException: unknown protocol: ftp://127.0 Java RTF [ par zarmin ] Bonjour,J'ai un modèle RTF et je voulais savoir s'il était possible de modifier le texte contenu dans le document :J'arrive par exemple à rajouter un Problem au niveau envoi d'email [ par wael1984 ] salut les developpeurs j'ais un probleme au niveau de code de l'envoi d'email, le code est correcte sans faute mais au niveau d'excution il m'affiche


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 4,914 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.