Files
SAE_DEV_JAVA/src/com/charpentierbalocchi/dorfjavatik/view/FenetreDemarrage.java

93 lines
4.1 KiB
Java
Raw Normal View History

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();
2024-06-06 20:26:49 +02:00
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) {
2024-06-06 20:26:49 +02:00
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();
}
});
}
}