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); } }