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 :
1 2 3 4
| public class MaComponent extends JComponent
{
...
} |
1 2 3 4 5
| public class MaFrame extends JFrame {
private MaComponent mc;
} |
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.
J'ai donc une méthode save qui enregistre mon object mc.
Problème : quand je veux charger ce fichier, je fais :
this.mc = (MaComponent) ois.readObject();
Si je lis des attributs de mc, ils s'affichent correctement (l'objet s'est bien chargé).
Problème : rien ne s'affiche à l'écran, même avec un this.mc.repaint();
Voici ma méthode load :
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();
} |
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é.
Une solution?
Merci
Partager