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