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:
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();
}