Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1645 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Serializaer tout le contenu d'un objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Serializaer tout le contenu d'un objet

n°1096666
Loizo
Posté le 25-05-2005 à 14:36:24  profilanswer
 

Bonjour,
 
j'essaye de Serializer un MutableTreeNode racine qui est donc la racine d'un arbre (JTree). Quand je la serialize je récupere tout va bien. Puis quand je vais lire dans mon objet je récupére bien les liens de parentés mais la valeur de tout les noeuds sont à null comme si il n'arrivait pas a recuperer les etiquettes. Voici mon code ou je met a la suite l'enregistrement et la recuperation :
 

Code :
  1. try {
  2.    //Je crée un fichier temporaire dans le répértoire courant  
  3.    //Ce fichier est l'arbre (selection de l'utilisateur) serializé
  4.    //Flux créant un fichier
  5.    FileOutputStream fos = new FileOutputStream(this.chemin);
  6.    //Flux dans lequel je stocke un objet
  7.    ObjectOutputStream oos = new ObjectOutputStream(fos);
  8.    //J'écris dans mon flux mon objet
  9.    System.out.println("racine avant drag = "+this.racine);
  10.    oos.writeObject(this.racine);
  11.    //On ferme le flux
  12.    oos.flush();
  13.    fos.close();
  14.   } catch (FileNotFoundException e1) {
  15.    System.err.println("FileNotFoundException" );
  16.    e1.printStackTrace();
  17.    return null;
  18.   } catch (IOException e1) {
  19.    System.err.println("IOException" );
  20.    return null;
  21.   } catch (ClassCastException e1) {
  22.    System.err.println("ClassCastException" );
  23.    return null;
  24.   }
  25.   try {
  26.    FileInputStream fos = new FileInputStream(this.chemin);
  27.    ObjectInputStream oos = new ObjectInputStream(fos);
  28.    //J'écris dans mon flux mon objet
  29.    MutableTreeNode sousArbre = (MutableTreeNode) oos.readObject();
  30.    //On ferme le flux
  31.    fos.close();
  32.    //On récupére l'arbre
  33.    System.out.println("racine apres drag = " + sousArbre);
  34.    this.racine = sousArbre;
  35.    modele = new DefaultTreeModel(racine);
  36.    Arbre.setModel(modele);
  37.    Aide a = new Aide(Arbre);
  38.   } catch (FileNotFoundException e1) {
  39.    System.err.println("FileNotFoundException" );
  40.    e1.printStackTrace();
  41.   } catch (IOException e1) {
  42.    System.err.println("IOException" );
  43.    e1.printStackTrace();
  44.   } catch (ClassNotFoundException e1) {
  45.    System.err.println("ClassNotFoundException" );
  46.    e1.printStackTrace();
  47.   } catch (ClassCastException e1) {
  48.    System.err.println("ClassCastException" );
  49.    e1.printStackTrace();
  50.   }


 
Ainsi :
System.out.println("racine avant drag = "+this.racine);  
retourne le nom de l'etiquette
 
Mais :
System.out.println("racine apres drag = " + sousArbre);
retourne null
 
?? La je suis perdu :sweat:

mood
Publicité
Posté le 25-05-2005 à 14:36:24  profilanswer
 

n°1096732
nraynaud
lol
Posté le 25-05-2005 à 15:00:38  profilanswer
 

on peut voir le code de ta sous-classe de MutableTReeNode ?


---------------
trainoo.com, c'est fini
n°1096742
Loizo
Posté le 25-05-2005 à 15:05:35  profilanswer
 

Tu veux dire comment je crée ma racine et tout ?
 
C'est dans la meme classe et pour créer mon JTree c'est assez compliqué mais en gros ca marche comme ca :
 

Code :
  1. racine =  new DefaultMutableTreeNode(((TreePath)userSelection.get(indexRacine)).getParentPath().getLastPathComponent());
  2.  modele = new DefaultTreeModel(racine);
  3.  Arbre = new JTree(modele);


 
Donc la en gros je crée ma racine avec comme etiquete la valeur de retour de getLastPathComponent(), apres le reste c'est de la bidouille :D
Et ensuite je fais comme ca pour ajouter un fils (et a peu pres pareil pour un frere)
 

Code :
  1. MutableTreeNode fils = new DefaultMutableTreeNode(((TreePath)userSelection.get(i)).getLastPathComponent());
  2.     modele.insertNodeInto(fils,pere,pere.getIndex(pere) + 1);


 
Sauf que pere je l'obtiens autrement (en allant chercher dans des vecteurs) mais j'ai "allegé" en ecrivant directement pere sinon ca serai trop le bordel a lire...
 
Et tout ca c'est dans une boucle et a la fin j'ai mon arbre JTree crée. Je serialize ma racine puis je la récupere...
 

n°1096773
Loizo
Posté le 25-05-2005 à 15:24:57  profilanswer
 

C'est bon j'ai trouvé tu m'as mis sur la voix :o
J'ai re regardé ma construction de noeud et j'ai rajouté .toString() et ca marche. :)
Merci ;)

n°1096779
nraynaud
lol
Posté le 25-05-2005 à 15:29:36  profilanswer
 

Code :
  1. /** optional user object */
  2.     transient protected Object userObject;


conclusion : tu te démerdes pour sauver ta hiérarchie toi-même, le truc ne le fait pas tout seul.


---------------
trainoo.com, c'est fini
n°1098705
the real m​oins moins
Posté le 26-05-2005 à 20:59:20  profilanswer
 

xstream [:cupra]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1099058
nraynaud
lol
Posté le 27-05-2005 à 09:33:16  profilanswer
 

:fou:


---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Serializaer tout le contenu d'un objet

 

Sujets relatifs
Vue 3D d'un objet pour le web[excel]Tester le contenu d'une cellule
Utilisation d'un objet dans une classe ?lire les valeurs d'un objet dans LDAP en vbs
Envoyer un objet Serializé dans un pipe.Conception d'un programme avec un langage objet
Effacer le contenu d'une zone de liste (Access 2003)Imprimer contenu d'une variable
effacer le contenu d'un TextBoxSuivi d'objet dans une vidéo
Plus de sujets relatifs à : Serializaer tout le contenu d'un objet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR