package fr.iut.Projet; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * Classe GameTimer qui gère le temps écoulé sur un mot. * * Affiche le temps en secondes dans un JLabel et peut être intégré * à la fenêtre du jeu. */ public class GameTimer { /** Label affichant le temps écoulé */ private JLabel timerLabel; /** Timer Swing qui incrémente le temps chaque seconde */ private Timer timer; /** Compteur de secondes écoulées */ private int secondsElapsed; /** * Constructeur : crée le label et initialise le timer. */ public GameTimer() { this.secondsElapsed = 0; this.timerLabel = new JLabel("Temps : 0 s"); timerLabel.setHorizontalAlignment(SwingConstants.RIGHT); // Timer qui déclenche l'action toutes les 1000ms (1 seconde) this.timer = new Timer(1000, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { secondsElapsed++; timerLabel.setText("Temps : " + secondsElapsed + " s"); } }); } /** Démarre le timer */ public void start() { secondsElapsed = 0; timer.start(); } /** Arrête le timer */ public void stop() { timer.stop(); } /** Remet le compteur à zéro */ public void reset() { secondsElapsed = 0; timerLabel.setText("Temps : 0 s"); } /** @return le JLabel contenant le temps écoulé */ public JLabel getTimerLabel() { return timerLabel; } /** @return le temps écoulé en secondes */ public int getSecondsElapsed() { return secondsElapsed; } }