forked from menault/TD3_DEV51_Qualite_Algo
68 lines
1.7 KiB
Java
68 lines
1.7 KiB
Java
|
|
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;
|
||
|
|
}
|
||
|
|
}
|