Amélioration du MVC
This commit is contained in:
parent
a18285e0f2
commit
a97db16dd2
@ -16,7 +16,7 @@ public class GMHowToCreateView extends JPanel {
|
||||
private Color TITLE_COLOR = new Color(255, 255, 255);
|
||||
private Font TITLE_FONT = new Font("Copperplate", Font.BOLD, 40);
|
||||
|
||||
private String TEXT = "1. Cliquez sur le menu 'Grille'.\n" +
|
||||
private String TEXT = "1. Cliquez sur le menu 'Fichier'.\n" +
|
||||
"2. Sélectionnez l'option 'Nouveau'.\n" +
|
||||
"3. Entrez les valeurs pour chaque cellule de la grille. (Entrez 0 si vous souhaitez supprimer une valeur de la grille)\n" +
|
||||
"4. Cliquez sur 'Sauvegarder' pour enregistrer votre grille.\n\n" +
|
||||
|
@ -1,23 +1,22 @@
|
||||
import java.io.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
|
||||
/**
|
||||
* Cette classe implémente un gestionnaire d'enregistrement de grille de jeu.
|
||||
* Elle permet à l'utilisateur de sauvegarder une grille de jeu dans un fichier spécifié.
|
||||
* Les fichiers de grille sont sauvegardés avec l'extension ".gri".
|
||||
* Cette classe écoute les événements d'action déclenchés par un composant d'interface utilisateur.
|
||||
* @version 1.0
|
||||
* @author Moncef STITI
|
||||
* @author Marco ORFAO
|
||||
*/
|
||||
public class GMSaver implements ActionListener {
|
||||
public class GMSaver {
|
||||
|
||||
private File selectedFile; // Le fichier sélectionné pour sauvegarde
|
||||
private JFrame parentFrame; // La fenêtre parent
|
||||
private GMGrid grid; // La grille de jeu à sauvegarder
|
||||
private GMChecker testGrille;
|
||||
|
||||
/**
|
||||
* Constructeur de la classe GMSaver.
|
||||
@ -27,15 +26,10 @@ public class GMSaver implements ActionListener {
|
||||
public GMSaver(JFrame parentFrame, GMGrid grid) {
|
||||
this.parentFrame = parentFrame;
|
||||
this.grid = grid;
|
||||
this.testGrille = new GMChecker(this.grid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode invoquée lorsqu'un événement d'action est déclenché.
|
||||
* Elle vérifie si la grille est valide, puis la sauvegarde si c'est le cas.
|
||||
* Sinon, elle affiche un message d'erreur.
|
||||
* @param e L'événement d'action déclenché.
|
||||
*/
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
public void saveGridIfNeeded() {
|
||||
if (isValidGrid()) {
|
||||
saveGrid();
|
||||
} else {
|
||||
@ -48,8 +42,7 @@ public class GMSaver implements ActionListener {
|
||||
* @return true si la grille est valide, sinon false.
|
||||
*/
|
||||
private boolean isValidGrid() {
|
||||
GMChecker test = new GMChecker(grid);
|
||||
return test.isCorrect();
|
||||
return this.testGrille.isCorrect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
19
src/GMSaverActionListener.java
Normal file
19
src/GMSaverActionListener.java
Normal file
@ -0,0 +1,19 @@
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class GMSaverActionListener implements ActionListener {
|
||||
|
||||
private Window parentFrame;
|
||||
private GMGrid grid;
|
||||
|
||||
public GMSaverActionListener(Window parentFrame, GMGrid grid) {
|
||||
this.parentFrame = parentFrame;
|
||||
this.grid = grid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
GMSaver gMSaver = new GMSaver(parentFrame, grid);
|
||||
gMSaver.saveGridIfNeeded();
|
||||
}
|
||||
}
|
@ -5,12 +5,23 @@ import java.awt.Container;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
|
||||
/**
|
||||
* La classe GMUserInterfaceView représente la vue de l'interface utilisateur pour le créateur de grille.
|
||||
* Elle crée la barre de menu et initialise les différents composants de l'interface utilisateur.
|
||||
* @version 1.0
|
||||
* @author Moncef STITI
|
||||
* @author Marco ORFAO
|
||||
*/
|
||||
public class GMUserInterfaceView {
|
||||
private JMenuBar menuBar = new JMenuBar();
|
||||
private Container content;
|
||||
private GMGrid grid;
|
||||
|
||||
/**
|
||||
* Constructeur de la classe GMUserInterfaceView.
|
||||
* Initialise la fenêtre avec le titre approprié, crée la barre de menu et ajoute les composants à la fenêtre.
|
||||
* @param window La fenêtre de l'application
|
||||
*/
|
||||
public GMUserInterfaceView(Window window) {
|
||||
window.setPageTitle("Créateur de grille");
|
||||
|
||||
@ -27,7 +38,7 @@ public class GMUserInterfaceView {
|
||||
// Ajout des éléments de menu
|
||||
JMenuItem nouveauItem = createMenuItem("Nouveau", new GMResetGrid(grid));
|
||||
JMenuItem chargerItem = createMenuItem("Charger", new GMImport(window, grid));
|
||||
JMenuItem sauvegarderItem = createMenuItem("Sauvegarder", new GMSaver(window, grid));
|
||||
JMenuItem sauvegarderItem = createMenuItem("Sauvegarder", new GMSaverActionListener(window, grid));
|
||||
GMChecker checker = new GMChecker(grid); // Créez une instance de GMChecker
|
||||
GMCheckerListener checkerListener = new GMCheckerListener(checker); // Créez une instance de GMCheckerListener en passant GMChecker en argument
|
||||
JMenuItem verifierItem = createMenuItem("Vérifier", checkerListener);
|
||||
@ -64,10 +75,21 @@ public class GMUserInterfaceView {
|
||||
window.setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Crée un menu avec le titre spécifié.
|
||||
* @param title Le titre du menu
|
||||
* @return Le menu créé
|
||||
*/
|
||||
private JMenu createMenu(String title) {
|
||||
return new JMenu(title);
|
||||
}
|
||||
|
||||
/**
|
||||
* Crée un élément de menu avec le titre et le listener spécifiés.
|
||||
* @param title Le titre de l'élément de menu
|
||||
* @param listener Le listener associé à l'élément de menu
|
||||
* @return L'élément de menu créé
|
||||
*/
|
||||
private JMenuItem createMenuItem(String title, ActionListener listener) {
|
||||
JMenuItem item = new JMenuItem(title);
|
||||
item.addActionListener(listener);
|
||||
|
@ -2,8 +2,8 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Listener for button clicks in the menu.
|
||||
* It performs different actions based on the button clicked.
|
||||
* Listener pour les clics sur les boutons dans le menu.
|
||||
* Il effectue différentes actions en fonction du bouton cliqué.
|
||||
* @version 1.0
|
||||
* @author Moncef STITI
|
||||
* @author Marco ORFAO
|
||||
@ -14,8 +14,8 @@ class GSHomeButtonClickListener implements ActionListener {
|
||||
private GSMenu menuJeu;
|
||||
|
||||
/**
|
||||
* Constructs a ButtonClickListener with the specified window.
|
||||
* @param window The window where the actions will be performed.
|
||||
* Construit un ButtonClickListener avec la fenêtre spécifiée.
|
||||
* @param window La fenêtre où les actions seront effectuées.
|
||||
*/
|
||||
public GSHomeButtonClickListener(Window window) {
|
||||
this.window = window;
|
||||
@ -23,8 +23,8 @@ class GSHomeButtonClickListener implements ActionListener {
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs an action based on the button clicked.
|
||||
* @param e The ActionEvent representing the button click.
|
||||
* Effectue une action en fonction du bouton cliqué.
|
||||
* @param e L'ActionEvent représentant le clic sur le bouton.
|
||||
*/
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
@ -1,22 +1,22 @@
|
||||
import javax.swing.*;
|
||||
|
||||
/**
|
||||
* It provides a button that toggles between playing and stopping music when clicked.
|
||||
* Fournit un bouton qui bascule entre la lecture et l'arrêt de la musique lorsqu'il est cliqué.
|
||||
* @version 1.0
|
||||
* @author Moncef STITI
|
||||
* @author Marco ORFAO
|
||||
*/
|
||||
public class MusicButton extends JButton {
|
||||
public class MusicButton extends JButton {
|
||||
private static MusicPlayer currentMusicPlayer;
|
||||
private ImageIcon iconOn;
|
||||
private ImageIcon iconOff;
|
||||
private MusicPlayer musicPlayer;
|
||||
|
||||
/**
|
||||
* Constructs a MusicButton.
|
||||
* @param onIconPath The file path for the icon when music is on.
|
||||
* @param offIconPath The file path for the icon when music is off.
|
||||
* @param musicFilePath The file path for the music file to be played.
|
||||
* Constructeur : Construit un MusicButton.
|
||||
* @param onIconPath Le chemin du fichier d'icône lorsque la musique est activée.
|
||||
* @param offIconPath Le chemin du fichier d'icône lorsque la musique est désactivée.
|
||||
* @param musicFilePath Le chemin du fichier musical à jouer.
|
||||
*/
|
||||
public MusicButton(String onIconPath, String offIconPath, String musicFilePath) {
|
||||
|
||||
|
@ -2,7 +2,7 @@ import java.io.File;
|
||||
import javax.sound.sampled.*;
|
||||
|
||||
/**
|
||||
* Class containign a simple music player that allows playing and stopping music.
|
||||
* Classe contenant un lecteur de musique simple qui permet de jouer et d'arrêter la musique.
|
||||
* @version 1.0
|
||||
* @author Moncef STITI
|
||||
* @author Marco ORFAO
|
||||
@ -13,8 +13,8 @@ public class MusicPlayer {
|
||||
private boolean isPlaying;
|
||||
|
||||
/**
|
||||
* Constructs a MusicPlayer with the specified file path.
|
||||
* @param filePath The path to the music file to be played.
|
||||
* Construit un MusicPlayer avec le chemin de fichier spécifié.
|
||||
* @param filePath Le chemin du fichier musical à jouer.
|
||||
*/
|
||||
public MusicPlayer(String filePath) {
|
||||
try {
|
||||
@ -28,7 +28,7 @@ public class MusicPlayer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts playing the music.
|
||||
* Démarre la lecture de la musique.
|
||||
*/
|
||||
public void play() {
|
||||
if (this.clip != null && !this.isPlaying) {
|
||||
@ -38,7 +38,7 @@ public class MusicPlayer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Stops the music.
|
||||
* Arrête la lecture de la musique.
|
||||
*/
|
||||
public void stop() {
|
||||
if (this.clip != null && this.isPlaying) {
|
||||
@ -48,8 +48,8 @@ public class MusicPlayer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the music is currently playing.
|
||||
* @return true if the music is playing, false otherwise.
|
||||
* Vérifie si la musique est en train de jouer actuellement.
|
||||
* @return true si la musique est en train de jouer, false sinon.
|
||||
*/
|
||||
public boolean isPlaying() {
|
||||
return this.isPlaying;
|
||||
|
Loading…
Reference in New Issue
Block a user