Files
SAE21_2025/ActionSauverQuitter.java

43 lines
1.4 KiB
Java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.IOException;
/**
* Action déclenchée par le bouton pour sauvegarder l'état actuel et fermer le jeu.
* Utilise la sérialisation pour écrire l'objet Grille dans un fichier.
*/
public class ActionSauverQuitter implements ActionListener {
private FenetreJeu jeu;
/**
* Constructeur de l'action de sauvegarde.
* @param j La fenêtre de jeu contenant la grille à sauvegarder.
*/
public ActionSauverQuitter(FenetreJeu j) {
this.jeu = j;
}
/**
* Sérialise la grille si la partie n'est pas terminée, puis quitte le programme.
* @param e L'événement du clic.
*/
public void actionPerformed(ActionEvent e) {
if (!jeu.isPartieTerminee()) {
try {
FileOutputStream fichier = new FileOutputStream("sauvegarde.ser");
ObjectOutputStream flux = new ObjectOutputStream(fichier);
flux.writeObject(jeu.getGrille());
flux.close();
fichier.close();
System.out.println("Partie sauvegardée avec succès !");
} catch (IOException ex) {
System.out.println("Erreur lors de la sauvegarde : " + ex.getMessage());
}
}
System.exit(0);
}
}