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

  FORUM HardWare.fr
  Programmation
  Java

  comment conserver en memoire des donnees deserialise?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment conserver en memoire des donnees deserialise?

n°1382195
max25b
Posté le 06-06-2006 à 16:24:23  profilanswer
 

salut tout le monde...
 
dans mon interface graphique j.ai un JPanel et dedans je dois afficher un arbre creer a partir des donnees.
ces donnees sont serialisees sur le disque dur et a chaque fois que je creer un arbre je suis oblige de deserialise et cest assez lourd....
 
est ce que quelqu'un aurait une idee a me proposer afin de deserialises les donnes une fois pour toute (et non a chaque fois que je cree un arbre).
 
jai pensais stocker ces donnees dans un fichier temporaire mais jai 2 soucis:
   - 1er:  lapplication doit tourner en java web start donc ecrire dans un fichier sur le serveur qui va heberger cette appli nest pas terrible(en plus je ne sais pas si jaurais les droits)
   - 2eme je ne sais pas comment on doit faire pour la gestion des fichiers, formats... etc
 
Est ce qu'il y aurait une autre solution a mon probleme a part le fichier temporaire???
 
merci

mood
Publicité
Posté le 06-06-2006 à 16:24:23  profilanswer
 

n°1382241
Bidem
Posté le 06-06-2006 à 17:03:18  profilanswer
 

Citation :

ces donnees sont serialisees sur le disque dur
...
jai pensais stocker ces donnees dans un fichier temporaire


 
Donc au lieu de lire tes données à partir du disque à chaque fois, tu veux lire les données à partir d'un fichier sur le disque.... gain zèro.
 
Ce qu'il faut c'est garder une référence sur ton arbre.

n°1382260
max25b
Posté le 06-06-2006 à 17:16:45  profilanswer
 

donc lidee du fichier, je laisse tomber...
 
garder une reference sur larbre.....je ne comprends pas
je suis debutant en java. est ce que tu pourrait approfondir ton explication sil te plait?
 
merci

n°1382282
Bidem
Posté le 06-06-2006 à 17:50:17  profilanswer
 

Citation :

je dois afficher un arbre creer a partir des donnees
...
a chaque fois que je creer un arbre je suis oblige de deserialise


 
Montre nous le code qui fait ça (respectivement : création d'un arbre à partir de données et lecture des données)

n°1382296
max25b
Posté le 06-06-2006 à 18:08:53  profilanswer
 

[quotemsg=1382282,4,89965]

Citation :

je dois afficher un arbre creer a partir des donnees
...
a chaque fois que je creer un arbre je suis oblige de deserialise


 

Citation :

Montre nous le code qui fait ça (respectivement : création d'un arbre à partir de données et lecture des données)


 
recuperation des donnees:

Code :
  1. XmlLogCall es = new XmlLogCall();
  2.        es=result.getFirst();
  3.        Iterator i = es.iterator();
  4.        JTree arbre=null;
  5.             
  6.        DefaultMutableTreeNode racine = new DefaultMutableTreeNode(((XmlLogLine)i.next()).getLog_method());
  7.        createNodes(i,racine);
  8.        arbre = new JTree(racine);
  9.                                 getMyTreeScrollPane().add(arbre);
  10.     getMyTreeScrollPane().revalidate();
  11.     getMyTreeScrollPane().setViewportView(arbre);
  12.           getMyTreeGraphSplitPane().setTopComponent(getMyTreeScrollPane());
  13.           getMySplitPanel().add(getMyTreeGraphSplitPane());


 
voici la creation de larbre:

Code :
  1. private DefaultMutableTreeNode createNodes(Iterator i,DefaultMutableTreeNode racine) {
  2.         DefaultMutableTreeNode noeud = null;
  3.         XmlLogLine tmp = null;// new XmlLogLine();
  4.        
  5.         while(i.hasNext()){
  6.        
  7.          tmp = (XmlLogLine)i.next();
  8.          racine.setAllowsChildren(true);
  9.          noeud = new DefaultMutableTreeNode(tmp.getLog_method());
  10.        
  11.          if(tmp.isStart() && !(tmp.isStartStop())){
  12.           //noeud = new DefaultMutableTreeNode(tmp.getLog_method());
  13.           racine.add(noeud);
  14.           racine=noeud;
  15.           //createNodes(i,noeud);
  16.          }
  17.          else if(tmp.isStop() && !(tmp.isStartStop())){
  18.           racine=(DefaultMutableTreeNode)racine.getParent();
  19.          }
  20.          else if(tmp.isStartStop()){
  21.           //noeud = new DefaultMutableTreeNode(tmp.getLog_method());
  22.           racine.add(noeud);
  23.          }
  24.         }
  25.     return racine;
  26.     }


 

n°1382554
Bidem
Posté le 07-06-2006 à 09:14:43  profilanswer
 

Citation :

recuperation des donnees:

Code :
  1. ...
  2.   JTree arbre=null;



 
Ce que tu fais actuellement c'est de mettre ton arbre dans une varable locale donc il est perdu dès que tu sors de la méthode.
Ce qu'il faut faire c'est ajouter un attribut à une classe pour "sauvegarder" de lrésultat de la construction de l'arbre.
 
ça donnerait un truc comme ça si on ajoute l'attribut arbre à la classe où il y a le code de récup. des données

Code :
  1. if (this.arbre == null) {
  2.   // On n'a pas encore construit l'arbre
  3.   DefaultMutableTreeNode racine = new DefaultMutableTreeNode(((XmlLogLine)i.next()).getLog_method());
  4.   createNodes(i,racine);
  5.   this.arbre = new JTree(racine);
  6.   setArbre(this.arbre);
  7. }
  8. getMyTreeScrollPane().add(this.arbre);

n°1382603
trevor
laissez la vie vous étonner...
Posté le 07-06-2006 à 10:11:01  profilanswer
 

Attribut statique ?


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

  comment conserver en memoire des donnees deserialise?

 

Sujets relatifs
[PHP] Lire les données d'un tableauconception base de données
MATLAB : gestion de donnees[VB6] Code 3343 - "Format de base de données non reconnu"
[C#] Les mystères de la représentation mémoire d'un objet BitmapProblème de sauvegarde des données dans une base sql
Problème de transmission des donnéesEnvoyer plusieurs fois données d'un formulaire sans changer de page
Cahier des charges - base de donnéesBase de données et IHM
Plus de sujets relatifs à : comment conserver en memoire des donnees deserialise?


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