Files
SAE21_2025/ActionDemarrer.java
T

70 lines
2.4 KiB
Java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* Action déclenchée pour valider les paramètres et générer la grille de jeu.
* Vérifie que les entrées du joueur respectent les règles (entre 4 et 30 cases, etc.).
*/
public class ActionDemarrer implements ActionListener {
private JTextField champLignes;
private JTextField champColonnes;
private JTextField champMines;
private JFrame cible;
private Menu menuPrincipal;
/**
* Constructeur de l'action de démarrage.
* @param champL Le champ de texte contenant le nombre de lignes.
* @param champC Le champ de texte contenant le nombre de colonnes.
* @param champM Le champ de texte contenant le nombre de mines.
* @param cible La fenêtre de configuration à fermer.
* @param menu Le menu principal à fermer.
*/
public ActionDemarrer(JTextField champL, JTextField champC, JTextField champM, JFrame cible, Menu menu) {
this.champLignes = champL;
this.champColonnes = champC;
this.champMines = champM;
this.cible = cible;
this.menuPrincipal = menu;
}
/**
* Récupère les saisies, les valide et lance la fenêtre de jeu si tout est correct.
* @param e L'événement du clic.
*/
public void actionPerformed(ActionEvent e) {
String sLignes = champLignes.getText();
String sColonnes = champColonnes.getText();
String sMines = champMines.getText();
try {
int l = Integer.parseInt(sLignes);
int c = Integer.parseInt(sColonnes);
int m = Integer.parseInt(sMines);
if (l < 4 || l > 30 || c < 4 || c > 30) {
System.out.println("Erreur : Les dimensions doivent être comprises entre 4 et 30");
return;
}
if (m >= (l * c)) {
System.out.println("Erreur : Le nombre de mines doit être inférieur au nombre de cases !");
return;
}
Grille g = new Grille(l, c);
g.placerMines(m);
g.calculerToutesLesMines();
new FenetreJeu(g);
cible.dispose();
menuPrincipal.getFenetre().dispose();
} catch (NumberFormatException ex) {
System.out.println("Erreur : Veuillez entrer des nombres entiers valides");
}
}
}