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

 


Dernière réponse
Sujet : [JAVA] Serialisation/"Deserialisation"
verdy_p

spy2k a écrit a écrit :

Voila j'ai une JDialog qui contient des JtextField, des Jbutton, etc. J'arrive a la serialiser, tout marche bien.  
 
Mais lorsque je la deserialise a partir du fichier, elle s'affiche bien mais tous les evenements que je lui ai associé ne sont plus "actifs".
 
Par exemple, quand j'appuile sur un des boutons, il ne se passe plus rien. Poutant je fais bien unn addActionPerformed(...) dans le constructeur, constructeur qui contient tous les methodes pour creer, customiser et ajouter mes elements a mon JDialog donc celui-ci, je pense est bien executé. Je void donc trop pas pourkoi les addActionPerformed aussi definis dans ce constructeur
ne marchent pas.
 
Faut il initialiser un truc avant d'ajouter les evenements?
enfin je sais pas...
 
Si quelqu'un a une idée, qu'il hesite pas.
 
Merci d'avance.




 
Ton problème vient du fait que la sérialisation ne marche bien sur un objet que si l'objet peut être exprimé en terme de propriétés sérialisables. Dans ce cas la sérialisation consiste simplement à sérialiser chacune des propriétés du composant.
 
Par contre cela ne marche pas nativement si les propriétés ne sont pas nativement sérialisables: c'est le cas des pointeurs de code, qui n'ont pas de valeur intrinsèque.
 
Il faut donc compléter la sérialisation d'une opération de conversion des méthodes en valeurs énumérées (une table de conversion contenant un pointeur de méthode et un indice numérique (ou un nom sous forme de chaine de caractères) suffit pour une telle conversion, et une boucle de parcourt de la table suffit pour sérialiser/désérialiser les méthodes...).
 
Dans le cas de conteneurs d'évènements, il faut leur trouver une analogie de sérialisation: ici un conteneur de même nature mais contenant les valeurs sérialisées associées aux différents types d'évènements ou de méthodes.

 

[edit]--Message édité par verdy_p--[/edit]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
verdy_p

spy2k a écrit a écrit :

Voila j'ai une JDialog qui contient des JtextField, des Jbutton, etc. J'arrive a la serialiser, tout marche bien.  
 
Mais lorsque je la deserialise a partir du fichier, elle s'affiche bien mais tous les evenements que je lui ai associé ne sont plus "actifs".
 
Par exemple, quand j'appuile sur un des boutons, il ne se passe plus rien. Poutant je fais bien unn addActionPerformed(...) dans le constructeur, constructeur qui contient tous les methodes pour creer, customiser et ajouter mes elements a mon JDialog donc celui-ci, je pense est bien executé. Je void donc trop pas pourkoi les addActionPerformed aussi definis dans ce constructeur
ne marchent pas.
 
Faut il initialiser un truc avant d'ajouter les evenements?
enfin je sais pas...
 
Si quelqu'un a une idée, qu'il hesite pas.
 
Merci d'avance.




 
Ton problème vient du fait que la sérialisation ne marche bien sur un objet que si l'objet peut être exprimé en terme de propriétés sérialisables. Dans ce cas la sérialisation consiste simplement à sérialiser chacune des propriétés du composant.
 
Par contre cela ne marche pas nativement si les propriétés ne sont pas nativement sérialisables: c'est le cas des pointeurs de code, qui n'ont pas de valeur intrinsèque.
 
Il faut donc compléter la sérialisation d'une opération de conversion des méthodes en valeurs énumérées (une table de conversion contenant un pointeur de méthode et un indice numérique (ou un nom sous forme de chaine de caractères) suffit pour une telle conversion, et une boucle de parcourt de la table suffit pour sérialiser/désérialiser les méthodes...).
 
Dans le cas de conteneurs d'évènements, il faut leur trouver une analogie de sérialisation: ici un conteneur de même nature mais contenant les valeurs sérialisées associées aux différents types d'évènements ou de méthodes.

 

[edit]--Message édité par verdy_p--[/edit]

spy2k Ben qd cette fenetre contient des JTexField, JComboxBox, etc, ca enregistre les valeurs qui etaient dedans, et ce, en quasiment une seule ligne de code.
Donc, quand je deserialise, les valeurs qui etaient dans ces "sous-compsants" reviennent, et ce, une nouvelle fois, en une seule ligne de code.
 
C'est juste par simplicité que je serialise, j'ai pas envie de me prendre la tete a recuperer chaque valeur qui etaient dans ces composants, les stocker separement dans un fichier texte, et apres, pour les restaurer, les relire separement dans mon fichier texte et faire unn setText() pour chacun de mes copmposants.
 
Voila en gros la principale raison, c'est juste pour gagner du temps.:sol:
ragefan Salut , j ai pas d idee pour ta reponse mais peux tu me expliquer a quoi ca sert de  serialiser une fenetre dans un fichier ... ?
merci  
ragefan@chez.com
spy2k up!
spy2k Voila j'ai une JDialog qui contient des JtextField, des Jbutton, etc. J'arrive a la serialiser, tout marche bien.  
 
Mais lorsque je la deserialise a partir du fichier, elle s'affiche bien mais tous les evenements que je lui ai associé ne sont plus "actifs".
 
Par exemple, quand j'appuile sur un des boutons, il ne se passe plus rien. Poutant je fais bien unn addActionPerformed(...) dans le constructeur, constructeur qui contient tous les methodes pour creer, customiser et ajouter mes elements a mon JDialog donc celui-ci, je pense est bien executé. Je void donc trop pas pourkoi les addActionPerformed aussi definis dans ce constructeur
ne marchent pas.
 
Faut il initialiser un truc avant d'ajouter les evenements?
enfin je sais pas...
 
Si quelqu'un a une idée, qu'il hesite pas.
 
Merci d'avance.

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