feat(GameView.java): ajout commentaire

This commit is contained in:
2025-11-09 18:54:28 +01:00
parent e7f8357697
commit 2db6d5c4bb

View File

@@ -4,11 +4,31 @@ import java.util.ArrayList;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JFrame; import javax.swing.JFrame;
/**
* Classe abstraite représentant une vue graphique du jeu.
* Chaque GameView est associée à une fenêtre JFrame et s'inscrit dans
* la liste globale des vues pour permettre des mises à jour centralisées.
*/
public abstract class GameView extends JComponent public abstract class GameView extends JComponent
{ {
private static ArrayList<GameView> vobs = new ArrayList<>(); /**
protected final JFrame frame; * Liste statique contenant toutes les instances actives de GameView.
* Permet d'itérer sur toutes les vues pour les mettre à jour simultanément.
*/
private static ArrayList<GameView> vobs = new ArrayList<>();
/** Fenêtre associée à cette vue */
protected final JFrame frame;
/**
* Construit une nouvelle GameView avec une fenêtre JFrame.
*
* @param title Titre de la fenêtre
* @param width Largeur de la fenêtre
* @param height Hauteur de la fenêtre
* @param x Position horizontale de la fenêtre à l'écran
* @param y Position verticale de la fenêtre à l'écran
*/
protected GameView(String title, int width, int height, int x, int y) protected GameView(String title, int width, int height, int x, int y)
{ {
// la fenetre // la fenetre
@@ -30,25 +50,44 @@ public abstract class GameView extends JComponent
register(); register();
} }
protected GameView register() /**
{ * Enregistre cette GameView dans la liste statique des vues.
*
* @return l'instance courante (permet le chainage)
*/
protected GameView register()
{
vobs.add(this); vobs.add(this);
return this; return this;
} }
protected GameView unregister() /**
{ * Désenregistre cette GameView de la liste statique des vues.
*
* @return l'instance courante (permet le chainage)
*/
protected GameView unregister()
{
vobs.remove(this); vobs.remove(this);
return this; return this;
} }
public static void update() /**
{ * Met à jour toutes les GameView enregistrées.
for (GameView o : vobs) * Cette méthode itère sur la liste globale et appelle run() sur chaque instance.
{ * Utile pour rafraichir l'affichage de toutes les vues en même temps.
o.run(); */
} public static void update()
} {
for (GameView o : vobs)
{
o.run();
}
}
protected abstract void run(); /**
* Méthode abstraite à implémenter par les classes filles.
* Elle est appelée par GameView.update() pour mettre à jour le contenu de la vue.
*/
protected abstract void run();
} }