nettoyage + lisibilité code + changement structure
This commit is contained in:
73
fr/iut_fbleau/Avalam/PieceLayer.java
Normal file
73
fr/iut_fbleau/Avalam/PieceLayer.java
Normal file
@@ -0,0 +1,73 @@
|
||||
package fr.iut_fbleau.Avalam;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* La classe <code>PieceLayer</code>
|
||||
*
|
||||
* Gère l'affichage des tours du plateau Avalam sous forme de boutons.
|
||||
* Elle :
|
||||
* - affiche les pièces,
|
||||
* - positionne les boutons sur la grille,
|
||||
* - associe une action de clic à chaque pièce.
|
||||
*
|
||||
* Aucune logique de jeu n'est implémentée ici.
|
||||
*/
|
||||
public class PieceLayer extends JPanel {
|
||||
|
||||
//Constructeur
|
||||
|
||||
/**
|
||||
* Construit la couche graphique des pièces.
|
||||
*/
|
||||
public PieceLayer() {
|
||||
setLayout(null);
|
||||
setOpaque(false);
|
||||
setBounds(0, 0, 800, 800);
|
||||
}
|
||||
|
||||
//Méthodes
|
||||
|
||||
/**
|
||||
* Affiche la grille de tours sous forme de boutons interactifs.
|
||||
*
|
||||
* @param grid grille 9×9 des tours
|
||||
* @param xBase décalage horizontal du plateau
|
||||
* @param yBase décalage vertical du plateau
|
||||
* @param spacing espacement entre cases
|
||||
* @param size taille d'un pion
|
||||
* @param clickCallback fonction appelée lors d’un clic sur un pion
|
||||
*/
|
||||
public void displayGrid(Tower[][] grid, int xBase, int yBase,
|
||||
int spacing, int size,
|
||||
java.util.function.BiConsumer<Integer, Integer> clickCallback) {
|
||||
|
||||
removeAll();
|
||||
|
||||
for (int r = 0; r < 9; r++) {
|
||||
for (int c = 0; c < 9; c++) {
|
||||
|
||||
Tower t = grid[r][c];
|
||||
if (t != null) {
|
||||
|
||||
PieceButton pb = new PieceButton(
|
||||
t.getColor().getSwingColor(),
|
||||
t.getHeight(),
|
||||
r, c
|
||||
);
|
||||
|
||||
pb.setBounds(xBase + c * spacing, yBase + r * spacing, size, size);
|
||||
|
||||
int fr = r, fc = c;
|
||||
pb.addActionListener(e -> clickCallback.accept(fr, fc));
|
||||
|
||||
add(pb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
revalidate();
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user