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 setResizable(false); // Empêche le redimensionnement de la fenêtre 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"); 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) { String gifPath = "src/com/charpentierbalocchi/dorfjavatik/resources/image.gif"; 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 comprise 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(); } }); } }