package linea; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; // Classe qui représente le menu principal du jeu (affiché au lancement). public class MenuPrincipal { private JFrame fenetre; private Jeu jeu; private JTextField champPseudo; public MenuPrincipal(JFrame fenetre, Jeu jeu) { this.fenetre = fenetre; this.jeu = jeu; } // Construit et affiche le panneau du menu dans la fenêtre public void afficher(String pseudoActuel) { JPanel panneau = new JPanel(new GridLayout(6, 1, 10, 10)); JLabel titre = new JLabel("LINEA", SwingConstants.CENTER); champPseudo = new JTextField(pseudoActuel, 15); JButton boutonJouer = new JButton("Jouer"); JButton boutonClassement = new JButton("Classement"); JButton boutonQuitter = new JButton("Quitter"); boutonJouer.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { jeu.lancerPartie(champPseudo.getText()); } }); boutonClassement.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 1. On récupère les scores depuis la BDD via l'objet 'jeu' String scores = jeu.getGestionnaireBDD().getTopScores(); // 2. On affiche le résultat dans la petite fenêtre popup JOptionPane.showMessageDialog(fenetre, scores, "Meilleurs Scores", JOptionPane.INFORMATION_MESSAGE); } }); boutonQuitter.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); panneau.add(titre); panneau.add(champPseudo); panneau.add(boutonJouer); panneau.add(boutonClassement); panneau.add(boutonQuitter); // panneau centré dans la fenêtre JPanel conteneur = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 150)); conteneur.add(panneau); fenetre.setContentPane(conteneur); fenetre.revalidate(); fenetre.repaint(); } }