ajouts listeners
This commit is contained in:
+20
-1
@@ -1,21 +1,39 @@
|
||||
package main;
|
||||
import view.*;
|
||||
|
||||
import view.*;
|
||||
import javax.sound.sampled.AudioInputStream;
|
||||
import javax.sound.sampled.AudioSystem;
|
||||
import javax.sound.sampled.Clip;
|
||||
import javax.swing.*;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* Classe principale du programme qui initialise l'interface utilisateur
|
||||
* et joue un fichier audio en boucle.
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
/**
|
||||
* Point d'entrée du programme. Initialise l'interface utilisateur
|
||||
* et démarre la lecture en boucle de la musique de fond.
|
||||
*
|
||||
* @param args les arguments de ligne de commande (non utilisés)
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
MenuView menuView = new MenuView();
|
||||
App.addView(menuView, App.MENU_VIEW);
|
||||
App.showView(App.MENU_VIEW);
|
||||
String filepath = "/java/Music/audio.wav";
|
||||
PlayMusic(filepath);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Joue un fichier audio en boucle.
|
||||
*
|
||||
* @param location le chemin d'accès au fichier audio à jouer
|
||||
*/
|
||||
public static void PlayMusic(String location) {
|
||||
try {
|
||||
URL url = Main.class.getResource(location);
|
||||
@@ -24,6 +42,7 @@ public class Main {
|
||||
Clip clip = AudioSystem.getClip();
|
||||
clip.open(audioInput);
|
||||
clip.start();
|
||||
clip.loop(Clip.LOOP_CONTINUOUSLY); // Boucle en continu
|
||||
} else {
|
||||
System.out.println("Fichier audio introuvable");
|
||||
}
|
||||
|
||||
+8
-2
@@ -107,6 +107,10 @@ java/controller/AllScore.class: java/controller/AllScore.java
|
||||
|
||||
### RÈGLE POUR COPIER LES IMAGES ###
|
||||
|
||||
Music:
|
||||
mkdir -p classes/java/Music
|
||||
if [ -d java/Music ]; then cp -r java/Music/* classes/java/Music/; else echo "Le répertoire java/Music n'existe pas."; fi
|
||||
|
||||
copy-images:
|
||||
mkdir -p classes/java/view/img
|
||||
if [ -d java/view/img ]; then cp -r java/view/img/* classes/java/view/img/; else echo "Le répertoire java/view/img n'existe pas."; fi
|
||||
@@ -119,7 +123,8 @@ $(MANIFEST_FILE):
|
||||
|
||||
### ARCHIVE JAR ###
|
||||
|
||||
Main.jar: Main.class copy-images $(MANIFEST_FILE)
|
||||
Main.jar: Main.class copy-images Music $(MANIFEST_FILE)
|
||||
mkdir -p classes/java/Music/
|
||||
mkdir -p classes/java/view/img
|
||||
jar cfm Main.jar $(MANIFEST_FILE) -C classes .
|
||||
|
||||
@@ -131,9 +136,10 @@ run: Main.class copy-images
|
||||
clean:
|
||||
-rm -f classes/**/*.class
|
||||
-rm -rf classes/java/view/img
|
||||
-rm -rf classes/Music
|
||||
|
||||
### BUTS FACTICES ###
|
||||
|
||||
.PHONY: run clean copy-images
|
||||
|
||||
### FIN ###
|
||||
### FIN ###
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 322 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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