From f6c779804dbe5ac2472b51eb2a395fe7bf731527 Mon Sep 17 00:00:00 2001 From: "Teo R." Date: Thu, 24 Sep 2026 11:33:53 +0200 Subject: [PATCH] Correction primaryWindow, partie Administration manquante -> ajouter + ajout du gameLevel par rapport a l'ancien commit avant merge --- .../src/main/java/views/PrimaryWindow.java | 159 ++++++++---------- 1 file changed, 73 insertions(+), 86 deletions(-) diff --git a/ProjetJava/src/main/java/views/PrimaryWindow.java b/ProjetJava/src/main/java/views/PrimaryWindow.java index b21d55a..bbcb110 100644 --- a/ProjetJava/src/main/java/views/PrimaryWindow.java +++ b/ProjetJava/src/main/java/views/PrimaryWindow.java @@ -24,19 +24,23 @@ import services.GameLevel; public class PrimaryWindow extends JFrame { public PrimaryWindow() { - - // Parametres de base de la fenetre + // Paramètres de base de la fenêtre setTitle("Jeux d'enfants"); setSize(1200, 1000); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setLocationRelativeTo(null); + setLocationRelativeTo(null); // Centre la fenêtre à l'écran - // Creation de la barre de menu + // Création de la barre de menu JMenuBar menuBar = new JMenuBar(); - // Creation du menu Activite - JMenu menuActivite = new JMenu("Activite"); + // Création de la zone centrale avec les onglets + JTabbedPane tabbedPane = new JTabbedPane(); + + // Creation de la page d'accueil + HomePage homePage = new HomePage(); + // Activité + JMenu menuActivite = new JMenu("Activité"); JMenuItem dessin = new JMenuItem("Dessin"); JMenuItem calcul = new JMenuItem("Calcul"); JMenuItem question = new JMenuItem("Question"); @@ -45,33 +49,65 @@ public class PrimaryWindow extends JFrame { menuActivite.add(calcul); menuActivite.add(question); - // Creation du menu Niveau + // Niveau JMenu menuNiveau = new JMenu("Niveau"); - - JRadioButtonMenuItem niveau1 = new JRadioButtonMenuItem("Niveau 1"); + ButtonGroup groupeNiveau = new ButtonGroup(); + JRadioButtonMenuItem niveau1 = new JRadioButtonMenuItem("Niveau 1", true); JRadioButtonMenuItem niveau2 = new JRadioButtonMenuItem("Niveau 2"); - - niveau1.setSelected(true); - + groupeNiveau.add(niveau1); + groupeNiveau.add(niveau2); menuNiveau.add(niveau1); menuNiveau.add(niveau2); - // Creation du menu Administration - JMenu menuAdministration = new JMenu("Administration"); - - JMenuItem authentification = new JMenuItem("S'authentifier"); + // Administration [TEST] + JMenu menuAdmin = new JMenu("Administration"); + JMenuItem authPart = new JMenuItem("S'authentifier"); + menuAdmin.add(authPart); + + authPart.addActionListener(e -> { + String test = JOptionPane.showInputDialog(this, "Message mdp"); + + if (test != null) { + try { + Properties props = new Properties(); + props.load(DbConnection.class.getClassLoader().getResourceAsStream("database_config.properties")); + + String testMdp = props.getProperty("password"); + + if (test.equals(testMdp)) { + // Vérification si l'onglet est déjà ouvert + if (tabbedPane.indexOfTab("Administration") == -1) { + // Création du panel Administration [PROVISOIRE TANT QUE LA PAGE ADMIN N'EXISTE PAS ENCORE !] + JPanel panelAdmin = new JPanel(); + panelAdmin.setBackground(Color.LIGHT_GRAY); + panelAdmin.add(new JLabel("Zone Administrateur")); + + // Ajout et focus sur l'onglet Administration + tabbedPane.addTab("Administration", panelAdmin); + tabbedPane.setSelectedIndex(tabbedPane.getTabCount() - 1); + } + } else { + // Si le mot de passe n'est pas le bon + JOptionPane.showMessageDialog(this, "Mot de passe incorrect !", "Erreur authentification", JOptionPane.ERROR_MESSAGE); + } + + } catch (Exception ex) { + // Si je fichier properties n'est pas trouvé + JOptionPane.showMessageDialog(this, "Erreur properties.", "Erreur properties", JOptionPane.ERROR_MESSAGE); + } + } - menuAdministration.add(authentification); + }); + // menuAdmin.add(new JMenuItem("S'authentifier")); - // Ajout des menus menuBar.add(menuActivite); menuBar.add(menuNiveau); menuBar.add(menuAdmin); setJMenuBar(menuBar); // Ajout du menu à la fenêtre - + // Création du niveau de jeu GameLevel gameLevel = new GameLevel(); - + // Création des panneaux [activités] // Ardoise MagicSlate ardoise = new MagicSlate(); @@ -79,134 +115,85 @@ public class PrimaryWindow extends JFrame { // Calcul CalculPanel p = new CalculPanel(gameLevel); - // Creation du JTabbedPane - JTabbedPane tabbedPane = new JTabbedPane(); - - // Creation du panel Dessin - MagicSlate magicSlate = new MagicSlate(); - - // Creation du panel Calcul - CalculPanel calculPanel = new CalculPanel(); + // Question + QuestionPanel panelQuestion = new QuestionPanel(); - // Creation du panel Question - QuestionPanel questionPanel = new QuestionPanel(); + // Ajout des onglets visibles + tabbedPane.addTab("Dessin", ardoise); + tabbedPane.addTab("Calcul", p); + tabbedPane.addTab("Question", panelQuestion); - // Ajout des panels dans les onglets - tabbedPane.addTab("Dessin", magicSlate); - tabbedPane.addTab("Calcul", calculPanel); - tabbedPane.addTab("Question", questionPanel); + // Admin + /* + * Onglet Administration (quatrième onglet) + * invisible par défaut. Il ne sera ajouté au tabbedPane + * qu'après la validation du mot de passe. + */ + Properties props = new Properties(); - // Affichage de la page d'accueil + // Ajout de la page d'accueil add(homePage, BorderLayout.CENTER); // Action du bouton Jeu 1 homePage.getJeu1().addActionListener(e -> { - - // Retrait de la page d'accueil remove(homePage); - - // Ajout du JTabbedPane add(tabbedPane, BorderLayout.CENTER); - - // Selection du jeu Dessin tabbedPane.setSelectedIndex(0); - - // Mise a jour de la fenetre revalidate(); repaint(); }); // Action du bouton Jeu 2 homePage.getJeu2().addActionListener(e -> { - - // Retrait de la page d'accueil remove(homePage); - - // Ajout du JTabbedPane add(tabbedPane, BorderLayout.CENTER); - - // Selection du jeu Calcul tabbedPane.setSelectedIndex(1); - - // Mise a jour de la fenetre revalidate(); repaint(); }); // Action du bouton Jeu 3 homePage.getJeu3().addActionListener(e -> { - - // Retrait de la page d'accueil remove(homePage); - - // Ajout du JTabbedPane add(tabbedPane, BorderLayout.CENTER); - - // Selection du jeu Question tabbedPane.setSelectedIndex(2); - - // Mise a jour de la fenetre revalidate(); repaint(); }); // Action du menu Dessin dessin.addActionListener(e -> { - - // Retrait de la page d'accueil remove(homePage); - - // Ajout du JTabbedPane add(tabbedPane, BorderLayout.CENTER); - - // Selection du jeu Dessin tabbedPane.setSelectedIndex(0); - - // Mise a jour de la fenetre revalidate(); repaint(); }); // Action du menu Calcul calcul.addActionListener(e -> { - - // Retrait de la page d'accueil remove(homePage); - - // Ajout du JTabbedPane add(tabbedPane, BorderLayout.CENTER); - - // Selection du jeu Calcul tabbedPane.setSelectedIndex(1); - - // Mise a jour de la fenetre revalidate(); repaint(); }); // Action du menu Question question.addActionListener(e -> { - - // Retrait de la page d'accueil remove(homePage); - - // Ajout du JTabbedPane add(tabbedPane, BorderLayout.CENTER); - - // Selection du jeu Question tabbedPane.setSelectedIndex(2); - - // Mise a jour de la fenetre revalidate(); repaint(); }); } public static void main(String[] args) { - + // Lancement de l'interface graphique dans le thread sécurisé de Swing SwingUtilities.invokeLater(() -> { - PrimaryWindow window = new PrimaryWindow(); - window.setVisible(true); + PrimaryWindow frame = new PrimaryWindow(); + frame.setVisible(true); }); } } -- GitLab