Files
DEV/SAE21_2024/code_source/PaintFenetreDebut.java
2025-12-05 10:28:17 +01:00

64 lines
2.3 KiB
Java

import javax.swing.*;
import java.awt.*;
/**
* La classe <code>PaintFenetreDebut</code> est un composant graphique personnalisé
* qui gère l'affichage du menu de démarrage du jeu SameGame. Elle permet d'afficher
* différentes images en fonction de l'état du menu et de gérer les interactions via la souris.
*
* @version 1.6
* @author Emmanuel Srivastava-Tiamzon & Wael Atik
*/
public class PaintFenetreDebut extends JComponent {
/** Image du menu principal */
private Image MenuDebutI;
/** Image du menu de sélection */
private Image MenuDebutII;
/** Le gestionnaire des événements de souris associé à cette fenêtre. */
private MouseFenetreDebut mouseFenetre;
/**
* Constructeur de la classe <code>PaintFenetreDebut</code>.
* Charge les images du menu et initialise le gestionnaire d'événements de souris.
*
* @param grille la grille du jeu à passer au gestionnaire de souris
* @param fenetre la fenêtre principale de démarrage (FenetreDebut)
*/
public PaintFenetreDebut(Grille grille, FenetreDebut fenetre) {
this.MenuDebutI = Toolkit.getDefaultToolkit().getImage("../image/MenuDebut.jpg");
this.MenuDebutII = Toolkit.getDefaultToolkit().getImage("../image/MenuDebutSelection.jpg");
this.mouseFenetre = new MouseFenetreDebut(this, grille, fenetre);
this.addMouseListener(this.mouseFenetre);
}
/**
* Redéfinit la méthode <code>paintComponent</code> pour dessiner les éléments du menu.
* Affiche l'image correspondant à l'état actuel du menu.
*
* @param pinceau le contexte graphique utilisé pour dessiner
*/
@Override
protected void paintComponent(Graphics pinceau) {
Graphics secondPinceau = pinceau.create();
if (this.isOpaque()) {
secondPinceau.setColor(this.getBackground());
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
}
switch (this.mouseFenetre.getEtatFenetre()) {
case 1:
secondPinceau.drawImage(this.MenuDebutI, 0, 0, 765, 510, this);
break;
case 2:
secondPinceau.drawImage(this.MenuDebutII, 0, 0, 765, 510, this);
break;
default:
secondPinceau.drawImage(this.MenuDebutI, 0, 0, 765, 510, this);
}
}
}