53 lines
1.9 KiB
Java
53 lines
1.9 KiB
Java
|
package view;
|
||
|
|
||
|
import model.Game;
|
||
|
import model.Tile;
|
||
|
import controller.GameController;
|
||
|
|
||
|
import javax.swing.*;
|
||
|
import java.awt.*;
|
||
|
import java.awt.event.ActionEvent;
|
||
|
import java.awt.event.ActionListener;
|
||
|
|
||
|
public class GameView extends JFrame {
|
||
|
private JLabel scoreLabel;
|
||
|
private BoardView boardView;
|
||
|
private GameController controller; // Ajoute le contrôleur ici
|
||
|
|
||
|
public GameView(Game game) { // Constructeur sans le contrôleur en paramètre
|
||
|
setTitle("Dorfromantik en Java");
|
||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||
|
setSize(500, 500);
|
||
|
setLayout(new BorderLayout());
|
||
|
|
||
|
scoreLabel = new JLabel("Score : " + game.getScore());
|
||
|
boardView = new BoardView(game.getBoard(), null); // Initialise BoardView sans contrôleur
|
||
|
|
||
|
JButton nextTileButton = new JButton("Sélectionner une tuile");
|
||
|
nextTileButton.addActionListener(new ActionListener() {
|
||
|
@Override
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
if (controller != null) { // Vérifie que le contrôleur est bien assigné
|
||
|
Tile tile = new Tile("forêt", new String[]{"terre", "terre", "eau", "terre", "eau", "terre"});
|
||
|
controller.selectNextTile(tile);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
add(scoreLabel, BorderLayout.NORTH);
|
||
|
add(boardView, BorderLayout.CENTER);
|
||
|
add(nextTileButton, BorderLayout.SOUTH);
|
||
|
}
|
||
|
|
||
|
// Nouvelle méthode setController pour permettre d'assigner le contrôleur après création
|
||
|
public void setController(GameController controller) {
|
||
|
this.controller = controller;
|
||
|
boardView.setController(controller); // Passe le contrôleur à BoardView
|
||
|
}
|
||
|
|
||
|
public void update(Game game) {
|
||
|
scoreLabel.setText("Score : " + game.getScore());
|
||
|
boardView.refreshBoard();
|
||
|
}
|
||
|
}
|