Amélioration de la javadoc et du code

This commit is contained in:
2024-12-06 23:26:40 +01:00
parent 8c483b35c3
commit 00f132d478
2 changed files with 91 additions and 16 deletions

View File

@@ -6,18 +6,57 @@ import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
/**
* ActionListener pour animer le défilement du plateau.
* Cette classe permet de déplacer progressivement le plateau en fonction de la cible et du nombre d'étapes.
*
* @version 1.0
* @author Khalid Chenouna, Lenny FOULOU
*/
public class TilePanningActionListener implements ActionListener { public class TilePanningActionListener implements ActionListener {
/**
* Référence au plateau.
*/
private Board board; private Board board;
private int targetOffsetX, targetOffsetY;
private int steps; // Nombre d'étapes pour l'animation /**
* Cible X de défilement du plateau.
*/
private int targetOffsetX;
/**
* Cible Y de défilement du plateau.
*/
private int targetOffsetY;
/**
* Nombre d'étapes pour l'animation
*/
private int steps;
/**
* Timer pour l'animation
*/
private Timer timer; private Timer timer;
// Indicateur pour vérifier si l'animation est en cours /**
* Indique si une animation est en cours.
*/
private static boolean isAnimating = false; private static boolean isAnimating = false;
// Variables pour suivre l'état de l'animation /**
* Compteur d'étapes pour l'animation.
*/
private int currentStep = 0; private int currentStep = 0;
/**
* Constructeur pour initialiser les variables de l'animation.
*
* @param board Référence au plateau
* @param targetOffsetX Cible X de défilement du plateau
* @param targetOffsetY Cible Y de défilement du plateau
* @param steps Nombre d'étapes pour l'animation
*/
public TilePanningActionListener(Board board, int targetOffsetX, int targetOffsetY, int steps) { public TilePanningActionListener(Board board, int targetOffsetX, int targetOffsetY, int steps) {
this.board = board; this.board = board;
this.targetOffsetX = targetOffsetX; this.targetOffsetX = targetOffsetX;
@@ -25,6 +64,12 @@ public class TilePanningActionListener implements ActionListener {
this.steps = steps; this.steps = steps;
} }
/**
* Méthode appelée à chaque étape de l'animation.
*
* @param e Evénement d'action
* @see ActionEvent
*/
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
int currentOffsetX = board.getOffsetX(); int currentOffsetX = board.getOffsetX();
@@ -54,10 +99,12 @@ public class TilePanningActionListener implements ActionListener {
} }
} }
// Lancer l'animation /**
* Démarrer l'animation.
*/
public void startAnimation() { public void startAnimation() {
if (isAnimating) { if (isAnimating) {
stopCurrentAnimation(); stopAnimation();
} }
isAnimating = true; isAnimating = true;
@@ -70,19 +117,13 @@ public class TilePanningActionListener implements ActionListener {
timer.start(); timer.start();
} }
// Arrêter l'animation proprement /**
* Arrêter l'animation.
*/
private void stopAnimation() { private void stopAnimation() {
if (timer != null) { if (timer != null) {
timer.stop(); // Arrêter le timer timer.stop(); // Arrêter le timer
} }
isAnimating = false; // Réinitialiser l'indicateur d'animation isAnimating = false; // Réinitialiser l'indicateur d'animation
} }
// Annuler l'animation en cours
private void stopCurrentAnimation() {
if (timer != null) {
timer.stop(); // Arrêter le timer de l'animation en cours
}
isAnimating = false; // Réinitialiser l'animation
}
} }

View File

@@ -5,23 +5,57 @@ import java.awt.event.MouseEvent;
import javax.swing.JButton; import javax.swing.JButton;
import java.awt.Color; import java.awt.Color;
/**
* Listener pour animer un bouton lorsqu'il est survolé par la souris.
* Cette classe permet de changer la couleur du bouton lorsque la souris entre ou sort de la zone du bouton.
*
* @version 1.0
* @author Moncef STITI, Lenny FOULOU
*/
public class TutorialButtonHoverListener extends MouseAdapter { public class TutorialButtonHoverListener extends MouseAdapter {
/**
* Référence au bouton à animer
*/
private final JButton button; private final JButton button;
/**
* Couleur de survol du bouton
*/
private final Color hoverColor; private final Color hoverColor;
/**
* Couleur d'origine du bouton
*/
private final Color originalColor; private final Color originalColor;
/**
* Constructeur pour initialiser les variables du listener.
*
* @param button Référence au bouton à animer
* @param hoverColor Couleur de survol du bouton
* @param originalColor Couleur d'origine du bouton
*/
public TutorialButtonHoverListener(JButton button, Color hoverColor, Color originalColor) { public TutorialButtonHoverListener(JButton button, Color hoverColor, Color originalColor) {
this.button = button; this.button = button;
this.hoverColor = hoverColor; this.hoverColor = hoverColor;
this.originalColor = originalColor; this.originalColor = originalColor;
} }
/**
* Change la couleur du bouton lorsque la souris entre dans la zone du bouton.
* @param evt Evénement de souris
* @see MouseEvent
*/
@Override @Override
public void mouseEntered(MouseEvent evt) { public void mouseEntered(MouseEvent evt) {
button.setBackground(hoverColor); // Couleur plus claire au survol button.setBackground(hoverColor); // Couleur plus claire au survol
} }
/**
* Change la couleur du bouton lorsque la souris sort de la zone du bouton.
* @param evt Evénement de souris
* @see MouseEvent
*/
@Override @Override
public void mouseExited(MouseEvent evt) { public void mouseExited(MouseEvent evt) {
button.setBackground(originalColor); // Retour à la couleur originale button.setBackground(originalColor); // Retour à la couleur originale