creation page avant debut du jeu
This commit is contained in:
Binary file not shown.
Binary file not shown.
BIN
projet_linea/bin/BoutonsManager$1.class
Normal file
BIN
projet_linea/bin/BoutonsManager$1.class
Normal file
Binary file not shown.
BIN
projet_linea/bin/BoutonsManager.class
Normal file
BIN
projet_linea/bin/BoutonsManager.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
projet_linea/bin/MenuPrincipal.class
Normal file
BIN
projet_linea/bin/MenuPrincipal.class
Normal file
Binary file not shown.
Binary file not shown.
113
projet_linea/src/MenuPrincipal.java
Normal file
113
projet_linea/src/MenuPrincipal.java
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
// ★★★ CLASSE CREEE PAR L'UTILISATEUR ★★★
|
||||||
|
// Fichier : MenuPrincipal.java (nouveau fichier)
|
||||||
|
// Objectif : afficher un menu d'accueil APRES la connexion réussie
|
||||||
|
// Remplace : l'ancien démarrage direct du jeu après connexion
|
||||||
|
// Fonctionnalités : 2 boutons (Lancer le jeu / Voir mes scores)
|
||||||
|
|
||||||
|
// Fenêtre du menu principal affichée après la connexion
|
||||||
|
public class MenuPrincipal extends JFrame {
|
||||||
|
|
||||||
|
// ID de l'utilisateur connecté
|
||||||
|
private final int utilisateurId;
|
||||||
|
|
||||||
|
// Constructeur du menu principal
|
||||||
|
// Affiche un écran d'accueil avec deux options : "Lancer le jeu" et "Voir mes scores"
|
||||||
|
// ★★★ CONSTRUCTEUR CREE PAR L'UTILISATEUR ★★★
|
||||||
|
// Nouveau : il n'existait pas avant, crée le menu principal
|
||||||
|
public MenuPrincipal(int utilisateurId, String userName) {
|
||||||
|
// Sauvegarde l'ID pour l'utiliser lors des appels à la base de données
|
||||||
|
this.utilisateurId = utilisateurId;
|
||||||
|
|
||||||
|
// Configuration de la fenêtre
|
||||||
|
setTitle("Menu Principal - Linea"); // 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
|
||||||
|
|
||||||
|
// Crée le panneau principal avec un fond sombre
|
||||||
|
JPanel panel = new JPanel(new GridBagLayout()); // GridBagLayout pour centrage
|
||||||
|
panel.setBackground(new Color(30, 30, 30)); // Fond gris très foncé
|
||||||
|
add(panel);
|
||||||
|
|
||||||
|
// Crée une boîte verticale pour disposer les éléments de haut en bas
|
||||||
|
Box box = Box.createVerticalBox(); // Disposition verticale
|
||||||
|
box.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
|
||||||
|
|
||||||
|
// Crée un titre de bienvenue personalisé avec le nom de l'utilisateur
|
||||||
|
JLabel titre = new JLabel("Bienvenue, " + userName + " !");
|
||||||
|
titre.setForeground(Color.WHITE); // Texte blanc
|
||||||
|
titre.setFont(new Font("Arial", Font.BOLD, 26)); // Police Arial gras 26pt
|
||||||
|
titre.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré
|
||||||
|
|
||||||
|
// Crée le bouton "Lancer le jeu" pour démarrer une partie
|
||||||
|
JButton demarrer = new JButton("Lancer le jeu");
|
||||||
|
demarrer.setBackground(new Color(70, 130, 180)); // Couleur bleu acier
|
||||||
|
demarrer.setForeground(Color.WHITE); // Texte blanc
|
||||||
|
demarrer.setFocusPainted(false); // Pas de bordure au focus
|
||||||
|
demarrer.setMaximumSize(new Dimension(220, 40)); // Dimension du bouton
|
||||||
|
demarrer.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
|
||||||
|
|
||||||
|
|
||||||
|
// Au clic, ferme ce menu et lance le jeu
|
||||||
|
// ★★★ ACTION MODIFIEE PAR L'UTILISATEUR ★★★
|
||||||
|
// Lance le jeu APRES fermeture du menu (ajout du menu principal)
|
||||||
|
demarrer.addActionListener(e -> {
|
||||||
|
// Ferme la fenêtre de menu
|
||||||
|
dispose();
|
||||||
|
// Crée une instance du jeu avec l'ID utilisateur (authentifié)
|
||||||
|
Jeu jeu = new Jeu(utilisateurId);
|
||||||
|
// Démarre l'affichage et l'initialisation du jeu
|
||||||
|
jeu.demarrer();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Crée le bouton "Voir mes scores" pour afficher l'historique
|
||||||
|
// ★★★ NOUVEAU BOUTON PAR L'UTILISATEUR ★★★
|
||||||
|
// Nouvelle fonctionnalité : permet de voir les scores AVANT de lancer le jeu
|
||||||
|
// Utilise les méthodes : GestionBDD.recupererScoresUtilisateur()
|
||||||
|
// GestionBDD.recupererMeilleurScoreUtilisateur()
|
||||||
|
JButton scores = new JButton("Voir mes scores");
|
||||||
|
scores.setBackground(new Color(70, 130, 180)); // Couleur bleu acier (même que demarrer)
|
||||||
|
scores.setForeground(Color.WHITE); // Texte blanc
|
||||||
|
scores.setFocusPainted(false); // Pas de bordure au focus
|
||||||
|
scores.setMaximumSize(new Dimension(220, 40)); // Dimension du bouton
|
||||||
|
scores.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
|
||||||
|
|
||||||
|
|
||||||
|
// Au clic, récupère et affiche les scores depuis la base de données
|
||||||
|
// ★★★ ACTION PAR L'UTILISATEUR ★★★
|
||||||
|
// Nouvelle action : afficher les scores historiques du joueur dans une popup
|
||||||
|
// Récupère : tous les scores + le meilleur score
|
||||||
|
scores.addActionListener(e -> {
|
||||||
|
// Récupère la liste de tous les scores de l'utilisateur depuis la BD
|
||||||
|
java.util.List<Integer> scoreList = GestionBDD.recupererScoresUtilisateur(utilisateurId);
|
||||||
|
// Récupère aussi le meilleur score (score maximum) depuis la BD
|
||||||
|
int meilleurScore = GestionBDD.recupererMeilleurScoreUtilisateur(utilisateurId);
|
||||||
|
|
||||||
|
// Construit un message texte avec tous les scores à afficher
|
||||||
|
StringBuilder message = new StringBuilder();
|
||||||
|
message.append("Meilleur score : ").append(meilleurScore).append("\n\n");
|
||||||
|
message.append("Tous les scores :\n");
|
||||||
|
|
||||||
|
// Ajoute chaque score à la liste, un par un
|
||||||
|
for (int s : scoreList) {
|
||||||
|
message.append(s).append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Affiche les scores dans une boîte de dialogue popup
|
||||||
|
JOptionPane.showMessageDialog(this, message.toString(), "Mes Scores", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Ajoute tous les éléments dans la boîte
|
||||||
|
box.add(titre);
|
||||||
|
box.add(Box.createVerticalStrut(40)); // Espace de 40 pixels après le titre
|
||||||
|
box.add(demarrer);
|
||||||
|
box.add(Box.createVerticalStrut(15)); // Espace de 15 pixels entre les deux boutons
|
||||||
|
box.add(scores);
|
||||||
|
|
||||||
|
// Ajoute la boîte au panneau principal
|
||||||
|
panel.add(box);
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Reference in New Issue
Block a user