From 2db6d5c4bbc9dea47fb21e854957f4f2cb68af68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Sun, 9 Nov 2025 18:54:28 +0100 Subject: [PATCH] feat(GameView.java): ajout commentaire --- src/GameView.java | 71 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/src/GameView.java b/src/GameView.java index 685df61..5e3a17d 100644 --- a/src/GameView.java +++ b/src/GameView.java @@ -4,11 +4,31 @@ import java.util.ArrayList; import javax.swing.JComponent; 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 { - private static ArrayList 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 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) { // la fenetre @@ -30,25 +50,44 @@ public abstract class GameView extends JComponent 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); - 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); - return this; + return this; } - public static void update() - { - for (GameView o : vobs) - { - o.run(); - } - } + /** + * Met à jour toutes les GameView enregistrées. + * 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. + */ + 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(); } \ No newline at end of file