Files
projet-dev/src/MenuPrincipal.java

81 lines
2.5 KiB
Java
Raw Normal View History

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) {
2026-03-04 14:58:03 +01:00
// 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();
}
}