43 lines
1.4 KiB
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);
|
|
}
|
|
}
|