import javax.swing.*; import java.awt.*; public class GrilleSudokuDessin extends JPanel { private static final int TAILLE_GRILLE = 3; private static final int TAILLE_REGION = 3; private static final int TAILLE_CELLULE = 50; private int[][] grille; public GrilleSudokuDessin(int[][] grille) { this.grille = grille; setPreferredSize(new Dimension(TAILLE_GRILLE * TAILLE_REGION * TAILLE_CELLULE, TAILLE_GRILLE * TAILLE_REGION * TAILLE_CELLULE)); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; // Définir l'épaisseur de la ligne g2d.setStroke(new BasicStroke(20)); // Épaisseur de ligne de 4 pixels // Dessiner les lignes de la grille (en gras pour les contours) for (int i = 0; i <= TAILLE_GRILLE * TAILLE_REGION; i++) { if (i % TAILLE_REGION == 0) { g2d.drawRect(0, i * TAILLE_CELLULE - 2, TAILLE_GRILLE * TAILLE_REGION * TAILLE_CELLULE, 4); g2d.drawRect(i * TAILLE_CELLULE - 2, 0, 4, TAILLE_GRILLE * TAILLE_REGION * TAILLE_CELLULE); } else { g2d.drawRect(0, i * TAILLE_CELLULE - 1, TAILLE_GRILLE * TAILLE_REGION * TAILLE_CELLULE, 2); g2d.drawRect(i * TAILLE_CELLULE - 1, 0, 2, TAILLE_GRILLE * TAILLE_REGION * TAILLE_CELLULE); } } // Dessiner les valeurs de la grille g.setColor(Color.BLACK); for (int i = 0; i < grille.length; i++) { for (int j = 0; j < grille[i].length; j++) { int valeur = grille[i][j]; if (valeur != 0) { g.drawString(String.valueOf(valeur), j * TAILLE_CELLULE + TAILLE_CELLULE / 2, i * TAILLE_CELLULE + TAILLE_CELLULE / 2); } } } } }