mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-31 03:01:38 +00:00
Ajout de la partie view du projet
This commit is contained in:
61
view/FenetreJeu.java
Normal file
61
view/FenetreJeu.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package view;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
import model.*;
|
||||
|
||||
/**
|
||||
* Fenêtre principale du jeu de course.
|
||||
* Elle affiche :
|
||||
* - le circuit
|
||||
* - le classement des voitures
|
||||
* - et ouvre une fenêtre de tableau de bord pour chaque voiture.
|
||||
*/
|
||||
public class FenetreJeu extends JFrame {
|
||||
|
||||
private final PanneauCircuit panneauCircuit;
|
||||
private final PanneauClassement panneauClassement;
|
||||
private final java.util.List<FenetreTableau> tableaux = new ArrayList<>();
|
||||
|
||||
private Runnable actionPause; // Action pour pause/reprendre, donnée par le contrôleur
|
||||
|
||||
public FenetreJeu(Game game) {
|
||||
setTitle("🏎️ Jeu de course - Vue principale");
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
setLayout(new BorderLayout());
|
||||
|
||||
// Partie centrale : le circuit
|
||||
panneauCircuit = new PanneauCircuit(game);
|
||||
add(panneauCircuit, BorderLayout.CENTER);
|
||||
|
||||
// Partie droite : le classement
|
||||
panneauClassement = new PanneauClassement(game);
|
||||
add(panneauClassement, BorderLayout.EAST);
|
||||
|
||||
// Fenêtres séparées : un tableau de bord par voiture
|
||||
for (Car voiture : game.getCars()) {
|
||||
tableaux.add(new FenetreTableau(voiture, this));
|
||||
}
|
||||
|
||||
setSize(1100, 650);
|
||||
setLocationRelativeTo(null); // centre la fenêtre à l’écran
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
/** Met à jour tous les affichages à partir du modèle */
|
||||
public void rafraichir(Game game) {
|
||||
panneauCircuit.mettreAJour(game);
|
||||
panneauClassement.mettreAJour(game);
|
||||
tableaux.forEach(FenetreTableau::rafraichir);
|
||||
}
|
||||
|
||||
/** Permet au contrôleur de donner l’action Pause/Reprendre */
|
||||
public void setActionPause(Runnable action) {
|
||||
this.actionPause = action;
|
||||
}
|
||||
|
||||
public Runnable getActionPause() {
|
||||
return actionPause;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user