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 Color TITLE_COLOR = new Color(255, 255, 255);
|
||||||
private Font TITLE_FONT = new Font("Copperplate", Font.BOLD, 40);
|
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" +
|
"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" +
|
"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" +
|
"4. Cliquez sur 'Sauvegarder' pour enregistrer votre grille.\n\n" +
|
||||||
|
@ -1,23 +1,22 @@
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
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.
|
* 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é.
|
* 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".
|
* 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
|
* @version 1.0
|
||||||
* @author Moncef STITI
|
* @author Moncef STITI
|
||||||
* @author Marco ORFAO
|
* @author Marco ORFAO
|
||||||
*/
|
*/
|
||||||
public class GMSaver implements ActionListener {
|
public class GMSaver {
|
||||||
|
|
||||||
private File selectedFile; // Le fichier sélectionné pour sauvegarde
|
private File selectedFile; // Le fichier sélectionné pour sauvegarde
|
||||||
private JFrame parentFrame; // La fenêtre parent
|
private JFrame parentFrame; // La fenêtre parent
|
||||||
private GMGrid grid; // La grille de jeu à sauvegarder
|
private GMGrid grid; // La grille de jeu à sauvegarder
|
||||||
|
private GMChecker testGrille;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur de la classe GMSaver.
|
* Constructeur de la classe GMSaver.
|
||||||
@ -27,15 +26,10 @@ public class GMSaver implements ActionListener {
|
|||||||
public GMSaver(JFrame parentFrame, GMGrid grid) {
|
public GMSaver(JFrame parentFrame, GMGrid grid) {
|
||||||
this.parentFrame = parentFrame;
|
this.parentFrame = parentFrame;
|
||||||
this.grid = grid;
|
this.grid = grid;
|
||||||
|
this.testGrille = new GMChecker(this.grid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public void saveGridIfNeeded() {
|
||||||
* 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) {
|
|
||||||
if (isValidGrid()) {
|
if (isValidGrid()) {
|
||||||
saveGrid();
|
saveGrid();
|
||||||
} else {
|
} else {
|
||||||
@ -48,8 +42,7 @@ public class GMSaver implements ActionListener {
|
|||||||
* @return true si la grille est valide, sinon false.
|
* @return true si la grille est valide, sinon false.
|
||||||
*/
|
*/
|
||||||
private boolean isValidGrid() {
|
private boolean isValidGrid() {
|
||||||
GMChecker test = new GMChecker(grid);
|
return this.testGrille.isCorrect();
|
||||||
return test.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.BorderLayout;
|
||||||
import java.awt.event.ActionListener;
|
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 {
|
public class GMUserInterfaceView {
|
||||||
private JMenuBar menuBar = new JMenuBar();
|
private JMenuBar menuBar = new JMenuBar();
|
||||||
private Container content;
|
private Container content;
|
||||||
private GMGrid grid;
|
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) {
|
public GMUserInterfaceView(Window window) {
|
||||||
window.setPageTitle("Créateur de grille");
|
window.setPageTitle("Créateur de grille");
|
||||||
|
|
||||||
@ -27,7 +38,7 @@ public class GMUserInterfaceView {
|
|||||||
// Ajout des éléments de menu
|
// Ajout des éléments de menu
|
||||||
JMenuItem nouveauItem = createMenuItem("Nouveau", new GMResetGrid(grid));
|
JMenuItem nouveauItem = createMenuItem("Nouveau", new GMResetGrid(grid));
|
||||||
JMenuItem chargerItem = createMenuItem("Charger", new GMImport(window, 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
|
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
|
GMCheckerListener checkerListener = new GMCheckerListener(checker); // Créez une instance de GMCheckerListener en passant GMChecker en argument
|
||||||
JMenuItem verifierItem = createMenuItem("Vérifier", checkerListener);
|
JMenuItem verifierItem = createMenuItem("Vérifier", checkerListener);
|
||||||
@ -64,10 +75,21 @@ public class GMUserInterfaceView {
|
|||||||
window.setVisible(true);
|
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) {
|
private JMenu createMenu(String title) {
|
||||||
return new JMenu(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) {
|
private JMenuItem createMenuItem(String title, ActionListener listener) {
|
||||||
JMenuItem item = new JMenuItem(title);
|
JMenuItem item = new JMenuItem(title);
|
||||||
item.addActionListener(listener);
|
item.addActionListener(listener);
|
||||||
|
@ -2,8 +2,8 @@ import java.awt.event.ActionEvent;
|
|||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listener for button clicks in the menu.
|
* Listener pour les clics sur les boutons dans le menu.
|
||||||
* It performs different actions based on the button clicked.
|
* Il effectue différentes actions en fonction du bouton cliqué.
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author Moncef STITI
|
* @author Moncef STITI
|
||||||
* @author Marco ORFAO
|
* @author Marco ORFAO
|
||||||
@ -14,8 +14,8 @@ class GSHomeButtonClickListener implements ActionListener {
|
|||||||
private GSMenu menuJeu;
|
private GSMenu menuJeu;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a ButtonClickListener with the specified window.
|
* Construit un ButtonClickListener avec la fenêtre spécifiée.
|
||||||
* @param window The window where the actions will be performed.
|
* @param window La fenêtre où les actions seront effectuées.
|
||||||
*/
|
*/
|
||||||
public GSHomeButtonClickListener(Window window) {
|
public GSHomeButtonClickListener(Window window) {
|
||||||
this.window = window;
|
this.window = window;
|
||||||
@ -23,8 +23,8 @@ class GSHomeButtonClickListener implements ActionListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs an action based on the button clicked.
|
* Effectue une action en fonction du bouton cliqué.
|
||||||
* @param e The ActionEvent representing the button click.
|
* @param e L'ActionEvent représentant le clic sur le bouton.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import javax.swing.*;
|
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
|
* @version 1.0
|
||||||
* @author Moncef STITI
|
* @author Moncef STITI
|
||||||
* @author Marco ORFAO
|
* @author Marco ORFAO
|
||||||
@ -13,10 +13,10 @@ import javax.swing.*;
|
|||||||
private MusicPlayer musicPlayer;
|
private MusicPlayer musicPlayer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a MusicButton.
|
* Constructeur : Construit un MusicButton.
|
||||||
* @param onIconPath The file path for the icon when music is on.
|
* @param onIconPath Le chemin du fichier d'icône lorsque la musique est activée.
|
||||||
* @param offIconPath The file path for the icon when music is off.
|
* @param offIconPath Le chemin du fichier d'icône lorsque la musique est désactivée.
|
||||||
* @param musicFilePath The file path for the music file to be played.
|
* @param musicFilePath Le chemin du fichier musical à jouer.
|
||||||
*/
|
*/
|
||||||
public MusicButton(String onIconPath, String offIconPath, String musicFilePath) {
|
public MusicButton(String onIconPath, String offIconPath, String musicFilePath) {
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import java.io.File;
|
|||||||
import javax.sound.sampled.*;
|
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
|
* @version 1.0
|
||||||
* @author Moncef STITI
|
* @author Moncef STITI
|
||||||
* @author Marco ORFAO
|
* @author Marco ORFAO
|
||||||
@ -13,8 +13,8 @@ public class MusicPlayer {
|
|||||||
private boolean isPlaying;
|
private boolean isPlaying;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a MusicPlayer with the specified file path.
|
* Construit un MusicPlayer avec le chemin de fichier spécifié.
|
||||||
* @param filePath The path to the music file to be played.
|
* @param filePath Le chemin du fichier musical à jouer.
|
||||||
*/
|
*/
|
||||||
public MusicPlayer(String filePath) {
|
public MusicPlayer(String filePath) {
|
||||||
try {
|
try {
|
||||||
@ -28,7 +28,7 @@ public class MusicPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts playing the music.
|
* Démarre la lecture de la musique.
|
||||||
*/
|
*/
|
||||||
public void play() {
|
public void play() {
|
||||||
if (this.clip != null && !this.isPlaying) {
|
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() {
|
public void stop() {
|
||||||
if (this.clip != null && this.isPlaying) {
|
if (this.clip != null && this.isPlaying) {
|
||||||
@ -48,8 +48,8 @@ public class MusicPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the music is currently playing.
|
* Vérifie si la musique est en train de jouer actuellement.
|
||||||
* @return true if the music is playing, false otherwise.
|
* @return true si la musique est en train de jouer, false sinon.
|
||||||
*/
|
*/
|
||||||
public boolean isPlaying() {
|
public boolean isPlaying() {
|
||||||
return this.isPlaying;
|
return this.isPlaying;
|
||||||
|
Loading…
Reference in New Issue
Block a user