From e7f9959230578619be623b6314e26b86b6b5f02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Sun, 9 Nov 2025 18:48:54 +0100 Subject: [PATCH] feat(Dashboard.java): ajout commentaire --- src/Dashboard.java | 138 ++++++++++++++++++++++++++++----------------- 1 file changed, 85 insertions(+), 53 deletions(-) diff --git a/src/Dashboard.java b/src/Dashboard.java index 7a2f1cd..d23b57c 100644 --- a/src/Dashboard.java +++ b/src/Dashboard.java @@ -1,75 +1,107 @@ import java.awt.BorderLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; - import java.util.function.Supplier; - import javax.swing.JButton; import javax.swing.JLabel; - /** - * bouton en bas, couleur choisi de la fenetre - * affiche: carburant restant et tour de piste + * Dashboard représente une vue graphique pour une voiture spécifique. + *

+ * Il affiche : + *

+ * et fournit un bouton pour mettre en pause ou reprendre le jeu. + *

*/ public class Dashboard extends GameView { - private final JLabel label; - private final JButton button; - private final Car car; + /** Label affichant le carburant et les tours */ + private final JLabel label; - private static boolean isPaused = false; + /** Bouton pause/reprise */ + private final JButton button; - public Dashboard(Car car, String title, Supplier fn, int width, int height, int x, int y) - { - super("Dashboard: " + title, width, height, x, y); + /** Voiture associée à ce dashboard */ + private final Car car; - this.car = car; - this.label = new JLabel(); - this.button = new JButton(); + /** État de pause global partagé par tous les dashboards */ + private static boolean isPaused = false; - // ajout background - frame.setBackground(car.getColor()); + /** + * Construit un dashboard pour une voiture donnée. + * + * @param car la voiture suivie par ce dashboard + * @param title titre du dashboard + * @param fn fonction appelée pour activer/désactiver la pause + * @param width largeur de la fenêtre + * @param height hauteur de la fenêtre + * @param x position horizontale de la fenêtre + * @param y position verticale de la fenêtre + */ + public Dashboard(Car car, String title, Supplier fn, int width, int height, int x, int y) + { + super("Dashboard: " + title, width, height, x, y); - init(fn); + this.car = car; + this.label = new JLabel(); + this.button = new JButton(); - this.add(label, BorderLayout.CENTER); - this.add(button, BorderLayout.SOUTH); - } - - // fonction uniquement pour l'affichage dynamique - private void updateButtonText() - { - button.setText(isPaused ? "En Pause" : "En Cours"); - } + frame.setBackground(car.getColor()); - private void init(Supplier fn) - { - updateButtonText(); + init(fn); - // classe pour le bouton - MouseAdapter ma = new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) - { - isPaused = fn.get(); - updateButtonText(); - GameView.update(); - } - }; + this.add(label, BorderLayout.CENTER); + this.add(button, BorderLayout.SOUTH); + } - this.button.addMouseListener(ma); - } + /** + * Met à jour le texte du bouton en fonction de l'état de pause. + */ + private void updateButtonText() + { + button.setText(isPaused ? "En Pause" : "En Cours"); + } - @Override - public void run() - { - label.setText( - "
Carburant Restant: " + car.getFuel() - + "
Nombre de Tour: " + car.getRound() - + "
" - ); + /** + * Initialise le listener du bouton pour gérer la pause. + * + * @param fn fonction appelée lorsque l'on clique sur le bouton pour inverser l'état de pause + */ + private void init(Supplier fn) + { + updateButtonText(); - updateButtonText(); - } -} + // classe anonyme pour le bouton + MouseAdapter ma = new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) + { + isPaused = fn.get(); + updateButtonText(); + GameView.update(); + } + }; + + this.button.addMouseListener(ma); + } + + /** + * Met à jour l'affichage du dashboard pour refléter + * le carburant et le nombre de tours de la voiture. + * Cette méthode est appelée périodiquement par le moteur de jeu. + */ + @Override + public void run() + { + label.setText( + "
Carburant Restant: " + car.getFuel() + + "
Nombre de Tour: " + car.getRound() + + "
" + ); + + updateButtonText(); + } +} \ No newline at end of file