ajouts listeners

This commit is contained in:
Vincent
2024-10-27 21:11:44 +01:00
parent bef0b378b5
commit 68e99b9cfc
81 changed files with 172 additions and 24 deletions

View File

@@ -0,0 +1,39 @@
package controller;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
/**
* Listener de souris pour le bouton de retour dans l'interface de score.
* Change la couleur de fond du bouton lorsqu'il est survolé.
*/
public class BackButtonMouseListener extends MouseAdapter {
private final JButton button;
private final Color hoverColor;
private final Color normalColor;
/**
* Constructeur de <code>BackButtonMouseListener</code>.
*
* @param button Le bouton cible.
* @param hoverColor La couleur de fond du bouton lors du survol.
* @param normalColor La couleur de fond normale du bouton.
*/
public BackButtonMouseListener(JButton button, Color hoverColor, Color normalColor) {
this.button = button;
this.hoverColor = hoverColor;
this.normalColor = normalColor;
}
@Override
public void mouseEntered(MouseEvent e) {
button.setBackground(hoverColor);
}
@Override
public void mouseExited(MouseEvent e) {
button.setBackground(normalColor);
}
}

View File

@@ -0,0 +1,22 @@
package controller;
import view.MenuView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Listener pour le bouton Nouveaux Jeu dans le menu principal.
*/
public class NewGameButtonListener implements ActionListener {
private final MenuView menuView;
public NewGameButtonListener(MenuView menuView) {
this.menuView = menuView;
}
@Override
public void actionPerformed(ActionEvent e) {
menuView.toggleHowToPlay();
}
}

View File

@@ -0,0 +1,16 @@
package controller;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Listener pour le bouton Quitter dans le menu principal.
* Ferme l'application lorsqu'il est activé.
*/
public class QuitButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0); // Ferme l'application
}
}

View File

@@ -0,0 +1,22 @@
package controller;
import view.MenuView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Listener pour le bouton Reprendre la partie dans le menu principal.
*/
public class ResumeButtonListener implements ActionListener {
private final MenuView menuView;
public ResumeButtonListener(MenuView menuView) {
this.menuView = menuView;
}
@Override
public void actionPerformed(ActionEvent e) {
menuView.showSeriesButtons();
}
}

View File

@@ -0,0 +1,30 @@
package controller;
import view.App;
import view.GameView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Listener pour les boutons de sélection de séries dans le menu principal.
*/
public class SeriesButtonListener implements ActionListener {
private final int seriesId;
private final SeriesSelector seriesSelector;
public SeriesButtonListener(int seriesId, SeriesSelector seriesSelector) {
this.seriesId = seriesId;
this.seriesSelector = seriesSelector;
}
@Override
public void actionPerformed(ActionEvent e) {
GameView gameView = new GameView(seriesId);
App.addView(gameView, App.GAME_VIEW);
App.showView(App.GAME_VIEW);
if (seriesSelector != null) {
seriesSelector.startGameWithSeries(seriesId);
}
}
}

View File

@@ -1,6 +1,10 @@
package view;
import controller.SeriesSelector;
import controller.ResumeButtonListener;
import controller.NewGameButtonListener;
import controller.SeriesButtonListener;
import controller.QuitButtonListener;
import javax.swing.*;
import java.awt.*;
@@ -59,7 +63,7 @@ public class MenuView extends JPanel {
/**
* Affiche ou masque le panneau "Comment jouer".
*/
private void toggleHowToPlay() {
public void toggleHowToPlay() {
seriesPanel.setVisible(false);
howToPlayPanel.setVisible(!howToPlayPanel.isVisible());
centeredPanel.removeAll();
@@ -102,8 +106,10 @@ public class MenuView extends JPanel {
quitButton.setOpaque(true);
quitButton.setFocusPainted(false);
resumeButton.addActionListener(e -> showSeriesButtons());
newGameButton.addActionListener(e -> toggleHowToPlay());
// Utilisation des listeners dans des fichiers séparés
resumeButton.addActionListener(new ResumeButtonListener(this));
newGameButton.addActionListener(new NewGameButtonListener(this));
quitButton.addActionListener(new QuitButtonListener()); // Ajout du listener pour le bouton Quitter
howToPlayPanel = createHowToPlayPanel();
howToPlayPanel.setVisible(false);
@@ -183,14 +189,7 @@ public class MenuView extends JPanel {
for (int i = 1; i <= 4; i++) {
int seriesId = i;
BtnPerso seriesButton = new BtnPerso("Série " + seriesId);
seriesButton.addActionListener(e -> {
GameView gameView = new GameView(seriesId);
App.addView(gameView, App.GAME_VIEW);
App.showView(App.GAME_VIEW);
if (seriesSelector != null) {
seriesSelector.startGameWithSeries(seriesId);
}
});
seriesButton.addActionListener(new SeriesButtonListener(seriesId, seriesSelector));
seriesButton.addMouseListener(new ButtonHoverListener());
panel.add(seriesButton);

View File

@@ -1,11 +1,12 @@
// src/main/java/view/ScoreView.java
package view;
import controller.AllScore;
import controller.BackButtonMouseListener;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import controller.AllScore;
/**
* La classe <code>ScoreView</code> représente l'interface utilisateur
@@ -78,15 +79,9 @@ public class ScoreView extends JPanel {
// Bouton de retour au menu
BtnPerso backButton = new BtnPerso("Retour au Menu");
backButton.addActionListener(e -> App.showView(App.MENU_VIEW));
backButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseEntered(java.awt.event.MouseEvent evt) {
backButton.setBackground(hoverColor);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
backButton.setBackground(normalColor);
}
});
// Ajout de BackButtonMouseListener pour le survol
backButton.addMouseListener(new BackButtonMouseListener(backButton, hoverColor, normalColor));
// Panneau de score actuel
JPanel currentScorePanel = new JPanel();