47 lines
1.8 KiB
Java
47 lines
1.8 KiB
Java
|
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);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|