From 4beefa3e0dc99c4708b3a6a15f6c118d1c303432 Mon Sep 17 00:00:00 2001 From: Constant Date: Wed, 4 Mar 2026 14:31:01 +0100 Subject: [PATCH] init 16: Correction EDT (event Dispatch Thread) OK --- linea/linea/Jeu.java | 23 ++++++++++++++--------- linea/linea/bddInit.java | 2 +- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/linea/linea/Jeu.java b/linea/linea/Jeu.java index 61fa854..b8558ff 100644 --- a/linea/linea/Jeu.java +++ b/linea/linea/Jeu.java @@ -170,14 +170,18 @@ public class Jeu implements KeyListener, ActionListener{ //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 - //-------------------------------------------------------------------------------- - NiveauxDataConnect niveau = null; - try { - niveau = new NiveauxDataConnect(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } + // 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 + new Thread(() -> { + try { + NiveauxDataConnect niveau = new NiveauxDataConnect(); + System.out.println("NiveauxDataConnect initialisé en arrière-plan"); + } catch (ClassNotFoundException ex) { + ex.printStackTrace(); + } catch (RuntimeException ex) { + ex.printStackTrace(); + } + }).start(); // 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.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 } } diff --git a/linea/linea/bddInit.java b/linea/linea/bddInit.java index 574fdfd..0d7f6ed 100644 --- a/linea/linea/bddInit.java +++ b/linea/linea/bddInit.java @@ -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 if(!dbFile.exists()){ // 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 if (is == null) { throw new FileNotFoundException("La base de données " + dbFileName + " est introuvable dans le .jar");