ajouts listeners
This commit is contained in:
39
src/main/java/controller/BackButtonMouseListener.java
Normal file
39
src/main/java/controller/BackButtonMouseListener.java
Normal 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);
|
||||
}
|
||||
}
|
22
src/main/java/controller/NewGameButtonListener.java
Normal file
22
src/main/java/controller/NewGameButtonListener.java
Normal 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();
|
||||
}
|
||||
}
|
16
src/main/java/controller/QuitButtonListener.java
Normal file
16
src/main/java/controller/QuitButtonListener.java
Normal 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
|
||||
}
|
||||
}
|
22
src/main/java/controller/ResumeButtonListener.java
Normal file
22
src/main/java/controller/ResumeButtonListener.java
Normal 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();
|
||||
}
|
||||
}
|
30
src/main/java/controller/SeriesButtonListener.java
Normal file
30
src/main/java/controller/SeriesButtonListener.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user