✅ Jeu fonctionnel (sauf easter egg)
Co-authored-by: Charpentier Juliette <juliette1.charpentier@etu.u-pec.fr>
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
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
|
||||
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();
|
||||
textField.setText("5"); // Définir la valeur par défaut à 5
|
||||
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);
|
||||
|
||||
// Ajout du panneau principal à la fenêtre
|
||||
add(panelPrincipal);
|
||||
|
||||
// Action listener pour le bouton
|
||||
button.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
try {
|
||||
int taille = Integer.parseInt(textField.getText());
|
||||
if (taille == 1) {
|
||||
// Charger le GIF à partir du chemin de fichier
|
||||
String gifPath = "bin/com/charpentierbalocchi/dorfjavatik/resources/image.gif"; // Remplacer par
|
||||
// le chemin
|
||||
// correct
|
||||
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 {
|
||||
JOptionPane.showMessageDialog(null, "Veuillez entrer une taille de grille entre 1 et 15.",
|
||||
"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();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user