package view; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import model.Board; import model.Tile; import controller.GameController; public class BoardView extends JPanel { private GameController controller; private int rows = 5; private int cols = 5; public BoardView(Board board, GameController controller) { this.controller = controller; setLayout(new GridLayout(rows, cols, 5, 5)); initializeBoard(); } // Méthode pour assigner le contrôleur après création de l'instance public void setController(GameController controller) { this.controller = controller; } private void initializeBoard() { for (int i = 0; i < rows * cols; i++) { JPanel tilePanel = new JPanel(); tilePanel.setBackground(Color.LIGHT_GRAY); tilePanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); tilePanel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { handleTilePlacement(tilePanel); } }); add(tilePanel); } } private void handleTilePlacement(JPanel tilePanel) { if (controller != null) { // Assure que le contrôleur est bien assigné Tile tile = controller.getNextTile(); if (tile != null) { tilePanel.setBackground(Color.GREEN); tilePanel.add(new JLabel(tile.getType())); revalidate(); repaint(); controller.placeTile(tile); } } } public void refreshBoard() { revalidate(); repaint(); } }