diff --git a/ProjetJava/src/main/java/views/HomePage.java b/ProjetJava/src/main/java/views/HomePage.java new file mode 100644 index 0000000000000000000000000000000000000000..c042ecf0e7714e4531bb5b9150a634c5fa0dddea --- /dev/null +++ b/ProjetJava/src/main/java/views/HomePage.java @@ -0,0 +1,135 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package views; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Font; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JPanel; + +/** + * + * @author Teo + */ +public class HomePage extends JPanel { + + private JButton jeu1; + private JButton jeu2; + private JButton jeu3; + + public HomePage() { + + // Parametres du panel principal + setLayout(new BorderLayout()); + + // Creation du panel contenant le contenu central + JPanel panelCentre = new JPanel( + new BorderLayout() + ); + + // Creation du panel contenant le titre + JPanel panelTitre = new JPanel(); + + // Creation du titre + JLabel titre = new JLabel("Jeux d'enfants"); + + titre.setPreferredSize(new Dimension(300, 70)); + titre.setFont(new Font("Arial", Font.PLAIN, 30)); + titre.setHorizontalAlignment(JLabel.CENTER); + titre.setBorder( + BorderFactory.createLineBorder( + java.awt.Color.GRAY + ) + ); + + // Ajout du titre au panel + panelTitre.add(titre); + + // Ajout du titre en haut + panelCentre.add(panelTitre, BorderLayout.NORTH); + + // Creation du panel contenant les boutons + JPanel panelJeux = new JPanel( + new FlowLayout(FlowLayout.CENTER) + ); + + // Creation du bouton Jeu 1 + jeu1 = new JButton("Jeu 1"); + jeu1.setPreferredSize(new Dimension(150, 60)); + jeu1.setFont(new Font("Arial", Font.PLAIN, 22)); + + // Creation du bouton Jeu 2 + jeu2 = new JButton("Jeu 2"); + jeu2.setPreferredSize(new Dimension(150, 60)); + jeu2.setFont(new Font("Arial", Font.PLAIN, 22)); + + // Creation du bouton Jeu 3 + jeu3 = new JButton("Jeu 3"); + jeu3.setPreferredSize(new Dimension(150, 60)); + jeu3.setFont(new Font("Arial", Font.PLAIN, 22)); + + // Ajout des boutons au panel + panelJeux.add(jeu1); + panelJeux.add(jeu2); + panelJeux.add(jeu3); + + // Ajout des boutons au centre + panelCentre.add(panelJeux, BorderLayout.CENTER); + + // Creation du panel permettant de centrer le contenu + JPanel panelPrincipal = new JPanel( + new FlowLayout( + FlowLayout.CENTER, + 0, + 300 + ) + ); + + // Ajout du contenu central + panelPrincipal.add(panelCentre); + + // Ajout du contenu au centre de la page + add(panelPrincipal, BorderLayout.CENTER); + + // Creation du panel contenant les noms + JPanel panelNoms = new JPanel( + new FlowLayout(FlowLayout.CENTER, 40, 10) + ); + + // Creation des noms des participants + JLabel nom1 = new JLabel("Axel L."); + JLabel nom2 = new JLabel("Adrien F."); + JLabel nom3 = new JLabel("Vincent M."); + JLabel nom4 = new JLabel("Teo R."); + + // Ajout des noms au panel + panelNoms.add(nom1); + panelNoms.add(nom2); + panelNoms.add(nom3); + panelNoms.add(nom4); + + // Ajout du panel des noms en bas + add(panelNoms, BorderLayout.SOUTH); + } + + // Recuperation du bouton Jeu 1 + public JButton getJeu1() { + return jeu1; + } + + // Recuperation du bouton Jeu 2 + public JButton getJeu2() { + return jeu2; + } + + // Recuperation du bouton Jeu 3 + public JButton getJeu3() { + return jeu3; + } +} diff --git a/ProjetJava/src/main/java/views/PrimaryWindow.java b/ProjetJava/src/main/java/views/PrimaryWindow.java index 3afd0fd6a36aafe311facc48fb23294e57aa6c37..b21d55abe0dce7bd1e14d225c38054843a82da9c 100644 --- a/ProjetJava/src/main/java/views/PrimaryWindow.java +++ b/ProjetJava/src/main/java/views/PrimaryWindow.java @@ -24,75 +24,46 @@ import services.GameLevel; public class PrimaryWindow extends JFrame { public PrimaryWindow() { - // Paramètres de base de la fenêtre + + // Parametres de base de la fenetre setTitle("Jeux d'enfants"); setSize(1200, 1000); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setLocationRelativeTo(null); // Centre la fenêtre à l'écran + setLocationRelativeTo(null); - // Création de la barre de menu + // Creation de la barre de menu JMenuBar menuBar = new JMenuBar(); - // Création de la zone centrale avec les onglets - JTabbedPane tabbedPane = new JTabbedPane(); + // Creation du menu Activite + JMenu menuActivite = new JMenu("Activite"); + + JMenuItem dessin = new JMenuItem("Dessin"); + JMenuItem calcul = new JMenuItem("Calcul"); + JMenuItem question = new JMenuItem("Question"); - // Activité - JMenu menuActivite = new JMenu("Activité"); - menuActivite.add(new JMenuItem("Dessin")); - menuActivite.add(new JMenuItem("Calcul")); - menuActivite.add(new JMenuItem("Question")); + menuActivite.add(dessin); + menuActivite.add(calcul); + menuActivite.add(question); - // Niveau + // Creation du menu Niveau JMenu menuNiveau = new JMenu("Niveau"); - ButtonGroup groupeNiveau = new ButtonGroup(); - JRadioButtonMenuItem niveau1 = new JRadioButtonMenuItem("Niveau 1", true); + + JRadioButtonMenuItem niveau1 = new JRadioButtonMenuItem("Niveau 1"); JRadioButtonMenuItem niveau2 = new JRadioButtonMenuItem("Niveau 2"); - groupeNiveau.add(niveau1); - groupeNiveau.add(niveau2); + + niveau1.setSelected(true); + menuNiveau.add(niveau1); menuNiveau.add(niveau2); - // 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); - } - } + // Creation du menu Administration + JMenu menuAdministration = new JMenu("Administration"); - }); - // menuAdmin.add(new JMenuItem("S'authentifier")); + JMenuItem authentification = new JMenuItem("S'authentifier"); + + menuAdministration.add(authentification); + // Ajout des menus menuBar.add(menuActivite); menuBar.add(menuNiveau); menuBar.add(menuAdmin); @@ -108,31 +79,134 @@ public class PrimaryWindow extends JFrame { // Calcul CalculPanel p = new CalculPanel(gameLevel); - // Question - QuestionPanel panelQuestion = new QuestionPanel(); + // Creation du JTabbedPane + JTabbedPane tabbedPane = new JTabbedPane(); + + // Creation du panel Dessin + MagicSlate magicSlate = new MagicSlate(); + + // Creation du panel Calcul + CalculPanel calculPanel = new CalculPanel(); + + // Creation du panel Question + QuestionPanel questionPanel = new QuestionPanel(); + + // Ajout des panels dans les onglets + tabbedPane.addTab("Dessin", magicSlate); + tabbedPane.addTab("Calcul", calculPanel); + tabbedPane.addTab("Question", questionPanel); + + // Affichage 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); - // Ajout des onglets visibles - tabbedPane.addTab("Dessin", ardoise); - tabbedPane.addTab("Calcul", p); - tabbedPane.addTab("Question", panelQuestion); + // 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); - // 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(); + // Ajout du JTabbedPane + add(tabbedPane, BorderLayout.CENTER); - // Ajout du gestionnaire d'onglets au centre de la fenêtre - 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 frame = new PrimaryWindow(); - frame.setVisible(true); + PrimaryWindow window = new PrimaryWindow(); + window.setVisible(true); }); } }