Files
SAE21_2025/MenuPrincipal.java
T

71 lines
2.5 KiB
Java
Raw Normal View History

2026-03-30 22:33:20 +02:00
import javax.swing.*;
import java.awt.*;
/**
* Fenêtre principale affichant le menu du Démineur.
*/
public class MenuPrincipal extends JFrame {
private JButton btnNouvellePartie;
private JButton btnReprendre;
private JButton btnQuitter;
/**
* Constructeur du menu principal.
*/
public MenuPrincipal() {
// Configuration de la fenêtre (héritée de JFrame)
super("Démineur - Menu Principal");
this.setSize(300, 250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Mise en page principale
this.setLayout(new BorderLayout());
// Titre en haut
JLabel etiquetteTitre = new JLabel("DÉMINEUR");
etiquetteTitre.setHorizontalAlignment(JLabel.CENTER);
this.add(etiquetteTitre, BorderLayout.NORTH);
// Panneau pour les boutons au centre
JPanel panneauBoutons = new JPanel();
panneauBoutons.setLayout(new GridLayout(3, 1)); // 3 lignes, 1 colonne
// Création des boutons
this.btnNouvellePartie = new JButton("Commencer une nouvelle partie");
this.btnReprendre = new JButton("Reprendre la partie précédente");
this.btnQuitter = new JButton("Quitter");
// Désactivation du bouton "Reprendre" par défaut (comme demandé dans le sujet)
this.btnReprendre.setEnabled(false);
// Ajout des boutons au panneau
panneauBoutons.add(this.btnNouvellePartie);
panneauBoutons.add(this.btnReprendre);
panneauBoutons.add(this.btnQuitter);
// Ajout du panneau au centre de la fenêtre
this.add(panneauBoutons, BorderLayout.CENTER);
// Connexion avec l'observateur (le contrôleur)
ControleurMenu observateur = new ControleurMenu(this);
this.btnNouvellePartie.addActionListener(observateur);
this.btnReprendre.addActionListener(observateur);
this.btnQuitter.addActionListener(observateur);
}
// --- Accesseurs pour que l'observateur puisse identifier les boutons ---
public JButton getBtnNouvellePartie() { return this.btnNouvellePartie; }
public JButton getBtnReprendre() { return this.btnReprendre; }
public JButton getBtnQuitter() { return this.btnQuitter; }
/**
* Méthode principale pour lancer le programme.
* @param args arguments de la ligne de commande (inutilisés)
*/
public static void main(String[] args) {
MenuPrincipal menu = new MenuPrincipal();
menu.setVisible(true);
}
}