2024-05-20 20:09:18 +02:00
|
|
|
package com.charpentierbalocchi.dorfjavatik.view;
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
|
|
|
|
public class FenetreDemarrage extends JFrame {
|
|
|
|
|
|
|
|
public FenetreDemarrage() {
|
|
|
|
super("Démarrage du jeu");
|
|
|
|
initUI();
|
|
|
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
|
setSize(400, 200);
|
|
|
|
setLocationRelativeTo(null); // Centre la fenêtre sur l'écran
|
2024-06-05 19:49:43 +02:00
|
|
|
setResizable(false); // Empêche le redimensionnement de la fenêtre
|
2024-05-20 20:09:18 +02:00
|
|
|
setVisible(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initUI() {
|
|
|
|
// Création des composants
|
|
|
|
JPanel panelPrincipal = new JPanel(new BorderLayout());
|
|
|
|
JLabel label = new JLabel("Entrez la taille de la grille (1-15):");
|
|
|
|
JTextField textField = new JTextField();
|
2024-06-06 20:26:49 +02:00
|
|
|
textField.setText("5");
|
2024-05-20 20:09:18 +02:00
|
|
|
JButton button = new JButton("Démarrer la partie");
|
|
|
|
|
|
|
|
// Ajout des composants au panneau principal
|
|
|
|
panelPrincipal.add(label, BorderLayout.NORTH);
|
|
|
|
panelPrincipal.add(textField, BorderLayout.CENTER);
|
|
|
|
panelPrincipal.add(button, BorderLayout.SOUTH);
|
|
|
|
add(panelPrincipal);
|
|
|
|
button.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
try {
|
|
|
|
int taille = Integer.parseInt(textField.getText());
|
|
|
|
if (taille == 1) {
|
2024-06-06 20:26:49 +02:00
|
|
|
String gifPath = "src/com/charpentierbalocchi/dorfjavatik/resources/image.gif";
|
2024-06-05 17:38:59 +02:00
|
|
|
|
2024-05-20 20:09:18 +02:00
|
|
|
ImageIcon gifIcon = new ImageIcon(gifPath);
|
|
|
|
|
|
|
|
// Vérifier si le GIF est chargé correctement
|
|
|
|
if (gifIcon.getIconWidth() == -1) {
|
|
|
|
JOptionPane.showMessageDialog(null, "Le fichier GIF n'a pas pu être chargé.", "Erreur",
|
|
|
|
JOptionPane.ERROR_MESSAGE);
|
|
|
|
} else {
|
|
|
|
// Créer un JLabel avec le GIF
|
|
|
|
JLabel gifLabel = new JLabel(gifIcon);
|
|
|
|
JPanel panelMessage = new JPanel(new BorderLayout());
|
|
|
|
panelMessage.add(new JLabel("UNE TUILE!"), BorderLayout.SOUTH);
|
|
|
|
panelMessage.add(gifLabel, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
// Afficher le message avec le GIF dans un JOptionPane
|
|
|
|
JOptionPane.showMessageDialog(null, panelMessage, "UNE TUILE !",
|
|
|
|
JOptionPane.WARNING_MESSAGE);
|
|
|
|
}
|
|
|
|
} else if (taille >= 2 && taille <= 4) {
|
|
|
|
int response = JOptionPane.showConfirmDialog(null,
|
|
|
|
"Êtes-vous sûr de vouloir continuer avec cette taille de grille ?",
|
|
|
|
"Confirmation",
|
|
|
|
JOptionPane.YES_NO_OPTION);
|
|
|
|
if (response == JOptionPane.YES_OPTION) {
|
|
|
|
new FenetreJeu(taille);
|
|
|
|
dispose();
|
|
|
|
} else {
|
|
|
|
textField.setText(""); // Réinitialiser le champ de texte pour permettre une nouvelle saisie
|
|
|
|
}
|
|
|
|
} else if (taille > 4 && taille <= 15) {
|
|
|
|
new FenetreJeu(taille);
|
|
|
|
dispose();
|
|
|
|
} else {
|
2024-06-05 17:38:59 +02:00
|
|
|
JOptionPane.showMessageDialog(null,
|
|
|
|
"Veuillez entrer une taille de grille comprise entre 1 et 15.",
|
2024-05-20 20:09:18 +02:00
|
|
|
"Erreur", JOptionPane.ERROR_MESSAGE);
|
|
|
|
}
|
|
|
|
} catch (NumberFormatException ex) {
|
|
|
|
JOptionPane.showMessageDialog(null, "Veuillez entrer un nombre valide.", "Erreur",
|
|
|
|
JOptionPane.ERROR_MESSAGE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// Méthode principale pour démarrer l'application
|
|
|
|
public static void main(String[] args) {
|
|
|
|
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
|
|
|
public void run() {
|
|
|
|
new FenetreDemarrage();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|