Bonjour,

Voilà mon probleme est de sauvegarder une classe afin que je puisse la relancé à l'identique quand je veux.

Ma classe pricipale s'appelle affichageJeu et contient une barre de menu permettant de lancer un nouveau jeu, sauvegader ou charger.

J'ai utiliser Serializable mais ça marche pas. Le fichier save.ser est bien crée mais quand je charge rien ne se passe.

Code de ma classe Affichage Jeu qui implemente Serializable:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
public class AffichageJeu extends JFrame implements ActionListener,Serializable
{
..................... Code.......................
}
 
 
 
public AffichageJeu(ListeJoueur les_Joueurs,Jouer le_jouer)
{
................. CODE ...............
}
 
 
 
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
 
if (source == Sauver)
{
System.out.println("Sauvegarde en cour......" );
try {
// ouverture d'un flux de sortie vers le fichier "save.ser" 
FileOutputStream fos = new FileOutputStream("save.ser" );
 
// création d'un "flux objet" avec le flux fichier 
ObjectOutputStream oos= new ObjectOutputStream(fos);
try {
// sérialisation : écriture de l'objet dans le flux de sortie 
oos.writeObject(this);
// on vide le tampon 
oos.flush();
}
finally{
//fermeture des flux 
try{
oos.close();
}
finally { fos.close();}
}
} catch(IOException ioe) {}
 
System.out.println("Sauvegarde Reussi !!!" );
 
}
 
 
 
if (source == Charger)
{
AffichageJeu chargementJeu=null;
 
try {
// ouverture d'un flux d'entrée depuis le fichier "save.ser" 
FileInputStream fis = new FileInputStream("save.ser" );
// création d'un "flux objet" avec le flux fichier 
ObjectInputStream ois= new ObjectInputStream(fis);
try {
// désérialisation : lecture de l'objet depuis le flux d'entrée 
System.out.println("Chargement en cour..." );
chargementJeu = (AffichageJeu) ois.readObject();
}
finally{
// on ferme les flux 
try{
ois.close();
}
finally {fis.close();}
}
}
catch(IOException ioe) {}
catch(ClassNotFoundException cnfe) {}
 
(chargementJeu != null)
{
System.out.println("Chagement Effectuer !!!" );
}
 
this.dispose();
chargementJeu.setVisible(true);
chargementJeu.pack();
 
}