Bonjour,
J'ai un problème avec la serialization et la deserialisation. J'ai une classe MaComponent qui etend de JComponent.
Je possède une classe MaFrame qui étend de JFrame et qui contient un attribut de type MaComponent :
Code:
1
2
3
4 public class MaComponent extends JComponent { ... }
J'ai bien évidemment plein d'autre classes. J'ai besoin de pouvoir sauvegarder (dans un fichier), l'état de la fenetre et de tout ce qui se passe à l'écran.Code:
1
2
3
4
5 public class MaFrame extends JFrame { private MaComponent mc; }
J'ai donc une méthode save qui enregistre mon object mc.
Problème : quand je veux charger ce fichier, je fais :
Si je lis des attributs de mc, ils s'affichent correctement (l'objet s'est bien chargé).Code:this.mc = (MaComponent) ois.readObject();
Problème : rien ne s'affiche à l'écran, même avec un this.mc.repaint();
Voici ma méthode load :
Je pense qu'il y a un problème de rafraichissement de la fenêtre car l'attribut 1 affiche bien ce qui avait été sauvegardé.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 protected void load(){ ObjectInputStream ois; try { ois = new ObjectInputStream( new BufferedInputStream( new FileInputStream( this.pathFile))); try { this.component = (MaComponent) ois.readObject(); //System.out.println(this.component.attribut1.toString()); this.component.repaint(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { ois.close(); }
Une solution?
Merci :)