init 16: Correction EDT (event Dispatch Thread) OK

This commit is contained in:
2026-03-04 14:31:01 +01:00
parent fe7c7f9a9f
commit 4beefa3e0d
2 changed files with 15 additions and 10 deletions

View File

@@ -170,14 +170,18 @@ public class Jeu implements KeyListener, ActionListener{
//propriétés dont on aura besoin pour utiliser NiveauxDataConnect //propriétés dont on aura besoin pour utiliser NiveauxDataConnect
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
// C'est ici qu'on appelle NiveauxDataConnect pour initialiser la connexion à la base de données des niveaux // Initialisation de la connexion aux niveaux HORS de l'EDT (arrière-plan)
//-------------------------------------------------------------------------------- // pour éviter de bloquer l'interface lors d'opérations disque/BDD
NiveauxDataConnect niveau = null; new Thread(() -> {
try { try {
niveau = new NiveauxDataConnect(); NiveauxDataConnect niveau = new NiveauxDataConnect();
} catch (ClassNotFoundException e) { System.out.println("NiveauxDataConnect initialisé en arrière-plan");
e.printStackTrace(); } catch (ClassNotFoundException ex) {
} ex.printStackTrace();
} catch (RuntimeException ex) {
ex.printStackTrace();
}
}).start();
// Démarrage du timer, qui rythmera l'animation // Démarrage du timer, qui rythmera l'animation
@@ -216,7 +220,8 @@ public class Jeu implements KeyListener, ActionListener{
this.ecran.partiePerdue = true; // 2. Signaler à l'écran this.ecran.partiePerdue = true; // 2. Signaler à l'écran
this.ecran.repaint(); // 3. Forcer l'affichage du texte this.ecran.repaint(); // 3. Forcer l'affichage du texte
GestionBDD.ajouterScore((int)this.score);// enregistrement du score dans la base de donne // Enregistrer le score hors de l'EDT pour ne pas bloquer l'UI
new Thread(() -> GestionBDD.ajouterScore((int)this.score)).start();// enregistrement du score dans la base de donne
} }
} }

View File

@@ -22,7 +22,7 @@ public class bddInit {
// Si le fichier de la base de données n'existe pas, on le crée en le copiant depuis le .jar // Si le fichier de la base de données n'existe pas, on le crée en le copiant depuis le .jar
if(!dbFile.exists()){ if(!dbFile.exists()){
// Récupération de la BDD du .jar ou "main/ressources" dans le projet // Récupération de la BDD du .jar ou "main/ressources" dans le projet
InputStream is = bddInit.class.getResourceAsStream("/" + dbFileName); InputStream is = bddInit.class.getResourceAsStream("/"+dbFileName);
// Si le fichier est introuvable dans le .jar, on affiche une erreur // Si le fichier est introuvable dans le .jar, on affiche une erreur
if (is == null) { if (is == null) {
throw new FileNotFoundException("La base de données " + dbFileName + " est introuvable dans le .jar"); throw new FileNotFoundException("La base de données " + dbFileName + " est introuvable dans le .jar");