diff --git a/projet_linea/bin/Background.class b/projet_linea/bin/Background.class
index 121fc1c..8a663fb 100644
Binary files a/projet_linea/bin/Background.class and b/projet_linea/bin/Background.class differ
diff --git a/projet_linea/bin/BonusMalus.class b/projet_linea/bin/BonusMalus.class
index f77d9f8..22b4eb6 100644
Binary files a/projet_linea/bin/BonusMalus.class and b/projet_linea/bin/BonusMalus.class differ
diff --git a/projet_linea/bin/BoutonScoresUtilisateur$1.class b/projet_linea/bin/BoutonScoresUtilisateur$1.class
index 8703d7b..f177930 100644
Binary files a/projet_linea/bin/BoutonScoresUtilisateur$1.class and b/projet_linea/bin/BoutonScoresUtilisateur$1.class differ
diff --git a/projet_linea/bin/BoutonScoresUtilisateur.class b/projet_linea/bin/BoutonScoresUtilisateur.class
index a70cc61..8d33555 100644
Binary files a/projet_linea/bin/BoutonScoresUtilisateur.class and b/projet_linea/bin/BoutonScoresUtilisateur.class differ
diff --git a/projet_linea/bin/BoutonsManager$1.class b/projet_linea/bin/BoutonsManager$1.class
index 3e2fe9f..5c9ef9a 100644
Binary files a/projet_linea/bin/BoutonsManager$1.class and b/projet_linea/bin/BoutonsManager$1.class differ
diff --git a/projet_linea/bin/BoutonsManager.class b/projet_linea/bin/BoutonsManager.class
index b0101f3..463fdd6 100644
Binary files a/projet_linea/bin/BoutonsManager.class and b/projet_linea/bin/BoutonsManager.class differ
diff --git a/projet_linea/bin/CadreDeConnexion.class b/projet_linea/bin/CadreDeConnexion.class
index b8af445..3af1eb8 100644
Binary files a/projet_linea/bin/CadreDeConnexion.class and b/projet_linea/bin/CadreDeConnexion.class differ
diff --git a/projet_linea/bin/Cercle.class b/projet_linea/bin/Cercle.class
index 9899856..571a4fe 100644
Binary files a/projet_linea/bin/Cercle.class and b/projet_linea/bin/Cercle.class differ
diff --git a/projet_linea/bin/GestionBDD.class b/projet_linea/bin/GestionBDD.class
index 178e6e9..e04a56d 100644
Binary files a/projet_linea/bin/GestionBDD.class and b/projet_linea/bin/GestionBDD.class differ
diff --git a/projet_linea/bin/Jeu.class b/projet_linea/bin/Jeu.class
index 64be96d..1def828 100644
Binary files a/projet_linea/bin/Jeu.class and b/projet_linea/bin/Jeu.class differ
diff --git a/projet_linea/bin/Ligne.class b/projet_linea/bin/Ligne.class
index 5eaa11e..7fdd883 100644
Binary files a/projet_linea/bin/Ligne.class and b/projet_linea/bin/Ligne.class differ
diff --git a/projet_linea/bin/LineaAppli.class b/projet_linea/bin/LineaAppli.class
index ed2bb20..088bf31 100644
Binary files a/projet_linea/bin/LineaAppli.class and b/projet_linea/bin/LineaAppli.class differ
diff --git a/projet_linea/bin/MenuPrincipal.class b/projet_linea/bin/MenuPrincipal.class
index 2bee24a..be0de5c 100644
Binary files a/projet_linea/bin/MenuPrincipal.class and b/projet_linea/bin/MenuPrincipal.class differ
diff --git a/projet_linea/bin/Niveau.class b/projet_linea/bin/Niveau.class
index a8339c1..26a3d8e 100644
Binary files a/projet_linea/bin/Niveau.class and b/projet_linea/bin/Niveau.class differ
diff --git a/projet_linea/bin/NiveauxDataConnect.class b/projet_linea/bin/NiveauxDataConnect.class
index b76b836..a7cd7f7 100644
Binary files a/projet_linea/bin/NiveauxDataConnect.class and b/projet_linea/bin/NiveauxDataConnect.class differ
diff --git a/projet_linea/bin/ObjetGraphique.class b/projet_linea/bin/ObjetGraphique.class
index 088d49f..2fca77b 100644
Binary files a/projet_linea/bin/ObjetGraphique.class and b/projet_linea/bin/ObjetGraphique.class differ
diff --git a/projet_linea/bin/Segment.class b/projet_linea/bin/Segment.class
index d0718db..058e748 100644
Binary files a/projet_linea/bin/Segment.class and b/projet_linea/bin/Segment.class differ
diff --git a/projet_linea/bin/ZoneDessin.class b/projet_linea/bin/ZoneDessin.class
index 7a83ceb..3a893aa 100644
Binary files a/projet_linea/bin/ZoneDessin.class and b/projet_linea/bin/ZoneDessin.class differ
diff --git a/projet_linea/bin/bddInit.class b/projet_linea/bin/bddInit.class
index b9a410e..c0334cc 100644
Binary files a/projet_linea/bin/bddInit.class and b/projet_linea/bin/bddInit.class differ
diff --git a/projet_linea/src/BoutonsManager.java b/projet_linea/src/BoutonsManager.java
index 3d4287a..8dfe29c 100644
--- a/projet_linea/src/BoutonsManager.java
+++ b/projet_linea/src/BoutonsManager.java
@@ -1,11 +1,26 @@
+import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.net.URL;
import java.util.List;
public class BoutonsManager {
+ private static Image chargerImageDepuisRessource(String cheminRessource) {
+ try {
+ URL url = BoutonsManager.class.getResource(cheminRessource);
+ if (url != null) {
+ return ImageIO.read(url);
+ }
+ System.err.println("Ressource introuvable : " + cheminRessource);
+ } catch (Exception e) {
+ System.err.println("Erreur chargement image : " + e.getMessage());
+ }
+ return null;
+ }
+
// Méthode pour créer le bouton des scores utilisateur
public static JButton creerBoutonScores(JFrame fenetre, int utilisateurId) {
JButton boutonScores = new JButton("Voir mes scores");
@@ -58,9 +73,13 @@ public class BoutonsManager {
int userId = GestionBDD.verifierConnexion(user, pass);
if (userId != -1) {
+ // On ferme la fenêtre de connexion avant d'ouvrir l'écran suivant.
cadre.dispose();
- Jeu jeu = new Jeu(userId);
- jeu.demarrer();
+
+ // Après une connexion réussie, on affiche le menu principal
+ // au lieu de lancer le jeu directement.
+ MenuPrincipal menuPrincipal = new MenuPrincipal(userId, user);
+ menuPrincipal.setVisible(true);
} else {
JOptionPane.showMessageDialog(cadre, "Acces refuse");
}
@@ -83,9 +102,16 @@ public class BoutonsManager {
createFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
createFrame.setLocationRelativeTo(null);
- JPanel createPanel = new JPanel(new GridBagLayout());
- createPanel.setBackground(new Color(30, 30, 30));
- createFrame.add(createPanel);
+ Background panelBackgroundCreation = null;
+ Image imageCreation = chargerImageDepuisRessource("/images/icone.png");
+ if (imageCreation != null) {
+ createFrame.setIconImage(imageCreation);
+ panelBackgroundCreation = new Background(imageCreation);
+ }
+
+ JPanel createPanel = new ZoneDessin(panelBackgroundCreation);
+ createPanel.setLayout(new GridBagLayout());
+ createFrame.setContentPane(createPanel);
Box createBox = Box.createVerticalBox();
@@ -146,4 +172,4 @@ public class BoutonsManager {
return createAccountBtn;
}
-}
\ No newline at end of file
+}
diff --git a/projet_linea/src/CadreDeConnexion.java b/projet_linea/src/CadreDeConnexion.java
index 2f0f505..a2a02ef 100644
--- a/projet_linea/src/CadreDeConnexion.java
+++ b/projet_linea/src/CadreDeConnexion.java
@@ -83,92 +83,6 @@ public class CadreDeConnexion extends JFrame {
panel.add(box); // Ajoute la boîte au centre du GridBagLayout
- // 5. Logique du bouton
- loginBtn.addActionListener(e -> {
- String user = userField.getText();
- String pass = new String(passField.getPassword());
- int userId = GestionBDD.verifierConnexion(user, pass);
-
- if (userId != -1) {
- dispose();
- Jeu jeu = new Jeu(userId);
- jeu.demarrer();
- } else {
- JOptionPane.showMessageDialog(this, "Acces refuse");
- }
- });
-
- createBtn.addActionListener(evt -> {
- JFrame createFrame = new JFrame("Creation de compte");
- createFrame.setSize(800, 600);
- createFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
- createFrame.setLocationRelativeTo(null);
-
- // On recharge la même image pour la fenêtre de création de compte
- // afin de lui donner à la fois l'icône et le fond d'écran.
- Background panelBackgroundCreation = null;
- Image imageCreation = chargerImageDepuisRessource("/images/icone.png");
- if (imageCreation != null) {
- createFrame.setIconImage(imageCreation);
- panelBackgroundCreation = new Background(imageCreation);
- }
-
- // Même principe que pour la page de connexion : le fond est dessiné par ZoneDessin
- JPanel createPanel = new ZoneDessin(panelBackgroundCreation);
- createPanel.setLayout(new GridBagLayout());
- createFrame.setContentPane(createPanel);
-
- Box createBox = Box.createVerticalBox();
-
- JLabel createTitre = new JLabel("CREATION DE COMPTE");
- createTitre.setForeground(Color.WHITE);
- createTitre.setFont(new Font("Arial", Font.BOLD, 24));
- createTitre.setAlignmentX(Component.CENTER_ALIGNMENT);
-
- JTextField newUserField = new JTextField(15);
- newUserField.setMaximumSize(new Dimension(250, 30));
-
- JPasswordField newPassField = new JPasswordField(15);
- newPassField.setMaximumSize(new Dimension(250, 30));
-
- JButton createAccountBtn = new JButton("Créer");
- createAccountBtn.setBackground(new Color(70, 130, 180));
- createAccountBtn.setForeground(Color.WHITE);
- createAccountBtn.setFocusPainted(false);
- createAccountBtn.setAlignmentX(Component.CENTER_ALIGNMENT);
-
- createBox.add(createTitre);
- createBox.add(Box.createVerticalStrut(30));
- createBox.add(new JLabel("Nouvel utilisateur :"));
- createBox.add(newUserField);
- createBox.add(Box.createVerticalStrut(15));
- createBox.add(new JLabel("Mot de passe :"));
- createBox.add(newPassField);
- createBox.add(Box.createVerticalStrut(30));
- createBox.add(createAccountBtn);
-
- createPanel.add(createBox);
-
- createAccountBtn.addActionListener(e -> {
- String u = newUserField.getText().trim();
- String p = new String(newPassField.getPassword());
- if (u.isEmpty() || p.isEmpty()) {
- JOptionPane.showMessageDialog(createFrame, "Utilisateur et mot de passe requis");
- return;
- }
-
- boolean ok = GestionBDD.creerUtilisateur(u, p);
- if (ok) {
- JOptionPane.showMessageDialog(createFrame, "Compte cree avec succes.");
- createFrame.dispose();
- } else {
- JOptionPane.showMessageDialog(createFrame, "Échec : le nom d'utilisateur existe deja ou erreur.");
- }
- });
-
- createFrame.setVisible(true);
- });
-
setVisible(true);
}
}
diff --git a/projet_linea/src/MenuPrincipal.java b/projet_linea/src/MenuPrincipal.java
index 73a9cb5..75dd942 100644
--- a/projet_linea/src/MenuPrincipal.java
+++ b/projet_linea/src/MenuPrincipal.java
@@ -1,5 +1,7 @@
-import javax.swing.*;
import java.awt.*;
+import java.net.URL;
+import javax.imageio.ImageIO;
+import javax.swing.*;
// ★★★ CLASSE CREEE PAR L'UTILISATEUR ★★★
// Fichier : MenuPrincipal.java (nouveau fichier)
@@ -21,8 +23,18 @@ public class MenuPrincipal extends JFrame {
// Sauvegarde l'ID pour l'utiliser lors des appels à la base de données
this.utilisateurId = utilisateurId;
+ // Charge la même icône que les autres fenêtres de l'application.
+ try {
+ URL urlIcone = getClass().getResource("/images/icone.png");
+ if (urlIcone != null) {
+ setIconImage(ImageIO.read(urlIcone));
+ }
+ } catch (Exception e) {
+ System.err.println("Impossible de charger l'icône du menu principal : " + e.getMessage());
+ }
+
// Configuration de la fenêtre
- setTitle("Menu Principal - Linea"); // Titre de la fenêtre
+ setTitle("ZENITH FLUX"); // Titre de la fenêtre
setSize(800, 600); // Dimensions de la fenêtre
setDefaultCloseOperation(EXIT_ON_CLOSE); // Quitter l'app à la fermeture
setLocationRelativeTo(null); // Centre la fenêtre
@@ -109,5 +121,7 @@ public class MenuPrincipal extends JFrame {
// Ajoute la boîte au panneau principal
panel.add(box);
+
+ setVisible(true);
}
}