mis a jour selon ma comprehenssion

This commit is contained in:
AlgaLaptop
2026-01-07 20:30:37 +01:00
parent 8c6dcec3df
commit 0291e9b0dd
5 changed files with 103 additions and 26 deletions
+30 -3
View File
@@ -1,15 +1,19 @@
package fr.iutfbleau.sae;
import java.awt.BorderLayout;
import java.io.File;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
/**
* Thread pour sauvegarder un fichier PIF en arriere-plan.
* Permet d'eviter de bloquer l'interface graphique pendant la sauvegarde.
* Affiche un dialogue de progression pendant la sauvegarde.
*/
public class ThreadSauvegardePIF extends Thread {
private final ConverterController controleur;
private final File fichier;
private ConverterController controleur;
private File fichier;
/**
* Construit un nouveau thread de sauvegarde.
@@ -24,13 +28,36 @@ public class ThreadSauvegardePIF extends Thread {
/**
* Execute la sauvegarde du fichier PIF.
* Affiche un dialogue de progression pendant la sauvegarde.
*/
@Override
public void run() {
// Creer le dialogue de progression
JDialog dialogue = new JDialog();
dialogue.setTitle("Sauvegarde");
dialogue.setModal(false);
dialogue.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialogue.setSize(300, 100);
dialogue.setLocationRelativeTo(null);
dialogue.setLayout(new BorderLayout(10, 10));
JLabel label = new JLabel("Sauvegarde en cours...", JLabel.CENTER);
dialogue.add(label, BorderLayout.CENTER);
JProgressBar barre = new JProgressBar();
barre.setIndeterminate(true);
dialogue.add(barre, BorderLayout.SOUTH);
dialogue.setVisible(true);
try {
// Sauvegarder le fichier
controleur.saveAsPIF(fichier.getAbsolutePath());
dialogue.dispose();
GestionErreur.afficherInfo("Fichier sauvegarde avec succes : " + fichier.getName());
} catch (Exception e) {
dialogue.dispose();
GestionErreur.afficherErreur("Erreur lors de la sauvegarde : " + e.getMessage());
}
}