From 3d247775d7cf6f03252d1215537526e493e40438 Mon Sep 17 00:00:00 2001 From: orfao Date: Wed, 17 Apr 2024 22:51:04 +0200 Subject: [PATCH] Ajout d'un moyen de retour au menu principal + Correction des bordures de la grille --- src/GridMakeUserInterfaceController.java | 16 +++++++++++++ src/GridMakeUserInterfaceView.java | 2 +- src/GridMakerGrid.java | 30 +++++++++++++++--------- src/GridMakerHowToCreateView.java | 6 ++++- 4 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 src/GridMakeUserInterfaceController.java diff --git a/src/GridMakeUserInterfaceController.java b/src/GridMakeUserInterfaceController.java new file mode 100644 index 0000000..09a1a44 --- /dev/null +++ b/src/GridMakeUserInterfaceController.java @@ -0,0 +1,16 @@ +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class GridMakeUserInterfaceController implements ActionListener { + private Window window; + + public GridMakeUserInterfaceController(Window window) { + this.window = window; + } + + @Override + public void actionPerformed(ActionEvent e) { + Window.removeAllComponents(window); + HomeView homeView = new HomeView(window); + } +} diff --git a/src/GridMakeUserInterfaceView.java b/src/GridMakeUserInterfaceView.java index 1b139df..10f0b92 100755 --- a/src/GridMakeUserInterfaceView.java +++ b/src/GridMakeUserInterfaceView.java @@ -36,7 +36,7 @@ public class GridMakeUserInterfaceView { // Ajout du menu "Jouer" JMenu menuJouer = createMenu("Quitter"); // Création de l'élément de menu "Retour" - JMenuItem retourMenu = createMenuItem("Menu jouer",null); + JMenuItem retourMenu = createMenuItem("Menu principal",new GridMakeUserInterfaceController(window)); // Ajout de l'élément "Retour" au menu "Jouer" menuJouer.add(retourMenu); // Ajout du menu "Jouer" à la barre de menu diff --git a/src/GridMakerGrid.java b/src/GridMakerGrid.java index 2b85681..33ab271 100755 --- a/src/GridMakerGrid.java +++ b/src/GridMakerGrid.java @@ -2,6 +2,8 @@ import javax.swing.*; import java.awt.*; import javax.swing.border.EmptyBorder; import java.awt.Color; +import javax.swing.border.Border; + /** @@ -53,20 +55,26 @@ public class GridMakerGrid extends JPanel { int zoneCol = j / 3; gridCases[i][j] = new GridMakerCase(); zones[zoneRow][zoneCol].add(gridCases[i][j]); - - // Add borders to cells based on their position in the grid - if ((i + 1) % 3 == 0 && (j + 1) % 3 == 0) { - gridCases[i][j].setBorder(BorderFactory.createMatteBorder(1, 1, 5, 5, Color.BLACK)); - } else if ((i + 1) % 3 == 0) { - gridCases[i][j].setBorder(BorderFactory.createMatteBorder(1, 1, 5, 1, Color.BLACK)); - } else if ((j + 1) % 3 == 0) { - gridCases[i][j].setBorder(BorderFactory.createMatteBorder(1, 1, 1, 5, Color.BLACK)); - } else { - gridCases[i][j].setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.BLACK)); - } + gridCases[i][j].setBorder(determineBorder(i, j)); // Utilisation de la fonction pour définir les bordures } } } + + /** + * Détermine les bordures à appliquer à une cellule de la grille en fonction de ses coordonnées. + * Les cellules des coins et des bords ont des bordures plus épaisses. + * + * @param i L'indice de ligne de la cellule. + * @param j L'indice de colonne de la cellule. + * @return La bordure à appliquer à la cellule. + */ + private Border determineBorder(int i, int j) { + int top = (i == 0) ? 5 : 1; // Bordure supérieure plus épaisse pour la première ligne + int bottom = ((i + 1) % 3 == 0) ? 5 : 1; // Bordure inférieure plus épaisse pour chaque troisième ligne + int left = (j == 0) ? 5 : 1; // Bordure gauche plus épaisse pour la première colonne + int right = ((j + 1) % 3 == 0) ? 5 : 1; // Bordure droite plus épaisse pour chaque troisième colonne + return BorderFactory.createMatteBorder(top, left, bottom, right, Color.BLACK); // Crée et retourne la bordure + } /** * Imports values to populate the Sudoku grid. diff --git a/src/GridMakerHowToCreateView.java b/src/GridMakerHowToCreateView.java index 4bb93a4..7943673 100644 --- a/src/GridMakerHowToCreateView.java +++ b/src/GridMakerHowToCreateView.java @@ -16,7 +16,11 @@ public class GridMakerHowToCreateView extends JPanel { private Color TITLE_COLOR = new Color(255, 255, 255); private Font TITLE_FONT = new Font("Copperplate", Font.BOLD, 40); - private String TEXT = "Comment créer une grille :\n\n 1. EXPLICATION \n\n 2. EXPLICATION\n\n 3. EXPLICATION.\n\n 4. EXPLICATION"; + private String TEXT = "1. Cliquez sur le menu 'Grille'.\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" + + "Vous pouvez également charger une grille existante en sélectionnant 'Charger' depuis le menu 'Fichier'."; private Color TEXT_COLOR = new Color(255, 255, 255); private Font TEXT_FONT = new Font("Arial", Font.PLAIN, 20);