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 :
+ *
+ * - Le carburant restant
+ * - Le nombre de tours complétés
+ *
+ * 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