test pour faire le plateau+nouveau menu dans testV1+ probleme compilation

This commit is contained in:
2024-11-14 18:30:20 +01:00
parent 03e17d1882
commit 57fcd8f1af
69 changed files with 1568 additions and 329 deletions

View File

@@ -0,0 +1,61 @@
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();
}
}