Ajout d'un moyen de retour au menu principal + Correction des bordures de la grille

This commit is contained in:
Marco ORFAO 2024-04-17 22:51:04 +02:00 committed by stiti
parent 6cd0e6f8e1
commit 3d247775d7
4 changed files with 41 additions and 13 deletions

View File

@ -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);
}
}

View File

@ -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

View File

@ -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.

View File

@ -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);