import javax.swing.*;
import java.awt.*;

public class SudokuUI extends JFrame {
    private Grid grid;
    private JButton[][] buttons;

    public SudokuUI(Grid grid) {
        this.grid = grid;
        this.buttons = new JButton[9][9];

        setTitle("Sudoku");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel gridPanel = new JPanel(new GridLayout(9, 9));
        gridPanel.setBackground(Color.WHITE);
        gridPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

        // Boutons de la grille
        createGridButtons(gridPanel);

        int preferredSize = 50 * 9; // 50 est la taille approximative d'un bouton
        gridPanel.setPreferredSize(new Dimension(preferredSize, preferredSize));

        add(gridPanel);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }

    private void createGridButtons(JPanel gridPanel) { // Création sudoku
        for (int row = 0; row < 9; row++) {
            for (int col = 0; col < 9; col++) {
                JButton button = new JButton();
                button.setFont(new Font("Arial", Font.BOLD, 24));
                button.setContentAreaFilled(false);
                button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                button.addActionListener(new SudokuButtonListener(row, col, grid, buttons));
                gridPanel.add(button);
                buttons[row][col] = button;

                // Mettez à jour le texte des boutons avec les valeurs de la grille Sudoku
                int value = grid.getCell(row, col).getValue();
                buttons[row][col].setText(value == 0 ? "" : String.valueOf(value));
            }
        }
    }
}