60 lines
2.2 KiB
Java
60 lines
2.2 KiB
Java
|
package com.charpentierbalocchi.dorfjavatik.view;
|
||
|
|
||
|
import javax.swing.*;
|
||
|
|
||
|
import com.charpentierbalocchi.dorfjavatik.model.Tuile;
|
||
|
|
||
|
import java.awt.*;
|
||
|
|
||
|
public class FenetreJeu extends JFrame {
|
||
|
private static final int TAILLE_PLATEAU = 5; // Taille du plateau 5x5
|
||
|
private JButton[][] boutons; // Boutons représentant les cases du plateau
|
||
|
private JLabel labelScore; // Label pour afficher le score
|
||
|
|
||
|
public FenetreJeu() {
|
||
|
super("DorfJavaTik"); // Titre de la fenêtre
|
||
|
initUI();
|
||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Ferme l'application à la fermeture de la fenêtre
|
||
|
setLocationRelativeTo(null); // Centre la fenêtre sur l'écran
|
||
|
pack(); // Ajuste la taille de la fenêtre en fonction des composants
|
||
|
}
|
||
|
|
||
|
private void initUI() {
|
||
|
// Panel principal
|
||
|
JPanel panelPrincipal = new JPanel(new BorderLayout());
|
||
|
|
||
|
// Panel pour le plateau de jeu
|
||
|
JPanel plateau = new JPanel(new GridLayout(TAILLE_PLATEAU, TAILLE_PLATEAU));
|
||
|
plateau.setSize(1000, 1000);
|
||
|
plateau.setLocation(0, 0);
|
||
|
boutons = new JButton[TAILLE_PLATEAU][TAILLE_PLATEAU];
|
||
|
for (int i = 0; i < TAILLE_PLATEAU; i++) {
|
||
|
for (int j = 0; j < TAILLE_PLATEAU; j++) {
|
||
|
JButton bouton = new JButton();
|
||
|
boutons[i][j] = bouton;
|
||
|
plateau.add(bouton);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Label pour le score
|
||
|
labelScore = new JLabel("Score: 0");
|
||
|
panelPrincipal.add(labelScore, BorderLayout.NORTH);
|
||
|
panelPrincipal.add(plateau, BorderLayout.CENTER);
|
||
|
|
||
|
add(panelPrincipal);
|
||
|
}
|
||
|
|
||
|
// Méthode pour mettre à jour le plateau après placement d'une tuile
|
||
|
public void updateBoard(int x, int y, Tuile tuile) {
|
||
|
JButton bouton = boutons[x][y];
|
||
|
bouton.setText(tuile.toString()); // Utilisez toString ou une autre méthode pour représenter visuellement la
|
||
|
// tuile
|
||
|
bouton.setEnabled(false); // Désactive le bouton pour éviter le placement d'une autre tuile à cette
|
||
|
// position
|
||
|
}
|
||
|
|
||
|
public void setScore(int score) {
|
||
|
labelScore.setText("Score: " + score);
|
||
|
}
|
||
|
}
|