historique de toutes les parties
This commit is contained in:
@@ -169,6 +169,32 @@ public class GestionnaireBDD {
|
|||||||
return data.toArray(new Object[0][]);
|
return data.toArray(new Object[0][]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Object[][] getHistoriqueParties() {
|
||||||
|
String sql = "SELECT u.identifiant, p.date_partie, p.score, p.campagne_id, p.difficulte_id, p.duree " +
|
||||||
|
"FROM parties p " +
|
||||||
|
"JOIN utilisateurs u ON p.utilisateur_id = u.id " +
|
||||||
|
"ORDER BY p.date_partie DESC";
|
||||||
|
List<Object[]> data = new ArrayList<>();
|
||||||
|
try (Statement stmt = conn.createStatement();
|
||||||
|
ResultSet rs = stmt.executeQuery(sql)) {
|
||||||
|
while (rs.next()) {
|
||||||
|
Object[] row = {
|
||||||
|
rs.getString("identifiant"),
|
||||||
|
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm").format(rs.getTimestamp("date_partie")),
|
||||||
|
rs.getInt("score"),
|
||||||
|
rs.getInt("campagne_id"),
|
||||||
|
rs.getInt("difficulte_id"),
|
||||||
|
rs.getInt("duree")
|
||||||
|
};
|
||||||
|
data.add(row);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
System.out.println("Erreur lors de la récupération de l'historique : " + e.getMessage());
|
||||||
|
}
|
||||||
|
return data.toArray(new Object[0][]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void fermerConnexion() {
|
public void fermerConnexion() {
|
||||||
try {
|
try {
|
||||||
if (conn != null) {
|
if (conn != null) {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class Jeu implements KeyListener, ActionListener {
|
|||||||
protected MenuPrincipal menu;
|
protected MenuPrincipal menu;
|
||||||
protected MenuCampagne menuCampagne;
|
protected MenuCampagne menuCampagne;
|
||||||
protected MenuLeaderboard menuLeaderboard;
|
protected MenuLeaderboard menuLeaderboard;
|
||||||
|
protected MenuHistorique menuHistorique;
|
||||||
|
|
||||||
protected Cercle demiCercleAvant;
|
protected Cercle demiCercleAvant;
|
||||||
protected Cercle demiCercleArriere;
|
protected Cercle demiCercleArriere;
|
||||||
@@ -57,6 +58,7 @@ public class Jeu implements KeyListener, ActionListener {
|
|||||||
menu = new MenuPrincipal(this);
|
menu = new MenuPrincipal(this);
|
||||||
menuCampagne = new MenuCampagne(this);
|
menuCampagne = new MenuCampagne(this);
|
||||||
menuLeaderboard = new MenuLeaderboard(this);
|
menuLeaderboard = new MenuLeaderboard(this);
|
||||||
|
menuHistorique = new MenuHistorique(this);
|
||||||
|
|
||||||
// Initialisation initiale
|
// Initialisation initiale
|
||||||
resetPartie(6, 20);
|
resetPartie(6, 20);
|
||||||
@@ -75,6 +77,7 @@ public class Jeu implements KeyListener, ActionListener {
|
|||||||
conteneurPrincipal.add(menu, "MENU");
|
conteneurPrincipal.add(menu, "MENU");
|
||||||
conteneurPrincipal.add(menuCampagne, "CAMPAGNE");
|
conteneurPrincipal.add(menuCampagne, "CAMPAGNE");
|
||||||
conteneurPrincipal.add(menuLeaderboard, "LEADERBOARD");
|
conteneurPrincipal.add(menuLeaderboard, "LEADERBOARD");
|
||||||
|
conteneurPrincipal.add(menuHistorique, "HISTORIQUE");
|
||||||
conteneurPrincipal.add(ecran, "JEU");
|
conteneurPrincipal.add(ecran, "JEU");
|
||||||
|
|
||||||
fenetre.setContentPane(conteneurPrincipal);
|
fenetre.setContentPane(conteneurPrincipal);
|
||||||
@@ -104,6 +107,11 @@ public class Jeu implements KeyListener, ActionListener {
|
|||||||
layout.show(conteneurPrincipal, "LEADERBOARD");
|
layout.show(conteneurPrincipal, "LEADERBOARD");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void afficherMenuHistorique() {
|
||||||
|
menuHistorique.rafraichirHistorique();
|
||||||
|
layout.show(conteneurPrincipal, "HISTORIQUE");
|
||||||
|
}
|
||||||
|
|
||||||
public void afficherMenuCampagne() {
|
public void afficherMenuCampagne() {
|
||||||
layout.show(conteneurPrincipal, "CAMPAGNE");
|
layout.show(conteneurPrincipal, "CAMPAGNE");
|
||||||
}
|
}
|
||||||
|
|||||||
58
src/linea/MenuHistorique.java
Normal file
58
src/linea/MenuHistorique.java
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
package linea;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.table.DefaultTableModel;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class MenuHistorique extends JPanel {
|
||||||
|
private JTable tableHistorique;
|
||||||
|
private final Jeu jeu;
|
||||||
|
|
||||||
|
public MenuHistorique(Jeu jeu) {
|
||||||
|
this.jeu = jeu;
|
||||||
|
setLayout(new BorderLayout(10, 10));
|
||||||
|
setBackground(new Color(45, 45, 45));
|
||||||
|
|
||||||
|
JLabel titre = new JLabel("HISTORIQUE DES PARTIES", SwingConstants.CENTER);
|
||||||
|
titre.setForeground(Color.WHITE);
|
||||||
|
titre.setFont(new Font("SansSerif", Font.BOLD, 40));
|
||||||
|
add(titre, BorderLayout.NORTH);
|
||||||
|
|
||||||
|
// Configuration du tableau
|
||||||
|
tableHistorique = new JTable();
|
||||||
|
tableHistorique.setFont(new Font("SansSerif", Font.PLAIN, 16));
|
||||||
|
tableHistorique.setRowHeight(25);
|
||||||
|
tableHistorique.setBackground(new Color(60, 60, 60));
|
||||||
|
tableHistorique.setForeground(Color.WHITE);
|
||||||
|
tableHistorique.getTableHeader().setFont(new Font("SansSerif", Font.BOLD, 18));
|
||||||
|
tableHistorique.getTableHeader().setBackground(new Color(30, 30, 30));
|
||||||
|
tableHistorique.getTableHeader().setForeground(Color.WHITE);
|
||||||
|
|
||||||
|
JScrollPane scrollPane = new JScrollPane(tableHistorique);
|
||||||
|
scrollPane.getViewport().setBackground(new Color(45, 45, 45));
|
||||||
|
scrollPane.setBorder(BorderFactory.createEmptyBorder(20, 50, 20, 50));
|
||||||
|
add(scrollPane, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
// Bouton de retour
|
||||||
|
JButton btnRetour = new JButton("Retour");
|
||||||
|
btnRetour.setFont(new Font("SansSerif", Font.PLAIN, 18));
|
||||||
|
btnRetour.addActionListener(e -> jeu.afficherMenuPrincipal());
|
||||||
|
|
||||||
|
JPanel southPanel = new JPanel();
|
||||||
|
southPanel.setBackground(new Color(45, 45, 45));
|
||||||
|
southPanel.add(btnRetour);
|
||||||
|
add(southPanel, BorderLayout.SOUTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rafraichirHistorique() {
|
||||||
|
Object[][] data = jeu.bdd.getHistoriqueParties();
|
||||||
|
String[] columnNames = {"Identifiant", "Date", "Score", "Campagne", "Difficulté", "Durée (s)"};
|
||||||
|
// Utilisation d'un DefaultTableModel pour rendre les cellules non éditables
|
||||||
|
tableHistorique.setModel(new DefaultTableModel(data, columnNames) {
|
||||||
|
@Override
|
||||||
|
public boolean isCellEditable(int row, int column) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ public class MenuPrincipal extends JPanel {
|
|||||||
private JButton btnPlay;
|
private JButton btnPlay;
|
||||||
private JButton btnCampaign;
|
private JButton btnCampaign;
|
||||||
private JButton btnLeaderboard;
|
private JButton btnLeaderboard;
|
||||||
|
private JButton btnHistorique;
|
||||||
private JButton btnQuit;
|
private JButton btnQuit;
|
||||||
|
|
||||||
public MenuPrincipal(Jeu jeu) {
|
public MenuPrincipal(Jeu jeu) {
|
||||||
@@ -23,6 +24,7 @@ public class MenuPrincipal extends JPanel {
|
|||||||
btnPlay = creerBouton("PLAY");
|
btnPlay = creerBouton("PLAY");
|
||||||
btnCampaign = creerBouton("CAMPAGNES");
|
btnCampaign = creerBouton("CAMPAGNES");
|
||||||
btnLeaderboard = creerBouton("LEADERBOARD");
|
btnLeaderboard = creerBouton("LEADERBOARD");
|
||||||
|
btnHistorique = creerBouton("HISTORIQUE");
|
||||||
btnQuit = creerBouton("QUIT");
|
btnQuit = creerBouton("QUIT");
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
@@ -32,6 +34,9 @@ public class MenuPrincipal extends JPanel {
|
|||||||
btnCampaign.addActionListener(e -> jeu.afficherMenuCampagne());
|
btnCampaign.addActionListener(e -> jeu.afficherMenuCampagne());
|
||||||
|
|
||||||
btnLeaderboard.addActionListener(e -> jeu.afficherLeaderboard());
|
btnLeaderboard.addActionListener(e -> jeu.afficherLeaderboard());
|
||||||
|
|
||||||
|
btnHistorique.addActionListener(e->jeu.afficherMenuHistorique());
|
||||||
|
|
||||||
btnQuit.addActionListener(e -> System.exit(0));
|
btnQuit.addActionListener(e -> System.exit(0));
|
||||||
|
|
||||||
// Mise en page (espacement vertical)
|
// Mise en page (espacement vertical)
|
||||||
@@ -44,6 +49,8 @@ public class MenuPrincipal extends JPanel {
|
|||||||
add(Box.createRigidArea(new Dimension(0, 15)));
|
add(Box.createRigidArea(new Dimension(0, 15)));
|
||||||
add(btnLeaderboard);
|
add(btnLeaderboard);
|
||||||
add(Box.createRigidArea(new Dimension(0, 15)));
|
add(Box.createRigidArea(new Dimension(0, 15)));
|
||||||
|
add(btnHistorique);
|
||||||
|
add(Box.createRigidArea(new Dimension(0, 15)));
|
||||||
add(btnQuit);
|
add(btnQuit);
|
||||||
add(Box.createVerticalGlue());
|
add(Box.createVerticalGlue());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user