historique de toutes les parties
This commit is contained in:
@@ -169,6 +169,32 @@ public class GestionnaireBDD {
|
||||
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() {
|
||||
try {
|
||||
if (conn != null) {
|
||||
|
||||
@@ -17,6 +17,7 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
protected MenuPrincipal menu;
|
||||
protected MenuCampagne menuCampagne;
|
||||
protected MenuLeaderboard menuLeaderboard;
|
||||
protected MenuHistorique menuHistorique;
|
||||
|
||||
protected Cercle demiCercleAvant;
|
||||
protected Cercle demiCercleArriere;
|
||||
@@ -57,6 +58,7 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
menu = new MenuPrincipal(this);
|
||||
menuCampagne = new MenuCampagne(this);
|
||||
menuLeaderboard = new MenuLeaderboard(this);
|
||||
menuHistorique = new MenuHistorique(this);
|
||||
|
||||
// Initialisation initiale
|
||||
resetPartie(6, 20);
|
||||
@@ -75,6 +77,7 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
conteneurPrincipal.add(menu, "MENU");
|
||||
conteneurPrincipal.add(menuCampagne, "CAMPAGNE");
|
||||
conteneurPrincipal.add(menuLeaderboard, "LEADERBOARD");
|
||||
conteneurPrincipal.add(menuHistorique, "HISTORIQUE");
|
||||
conteneurPrincipal.add(ecran, "JEU");
|
||||
|
||||
fenetre.setContentPane(conteneurPrincipal);
|
||||
@@ -104,6 +107,11 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
layout.show(conteneurPrincipal, "LEADERBOARD");
|
||||
}
|
||||
|
||||
public void afficherMenuHistorique() {
|
||||
menuHistorique.rafraichirHistorique();
|
||||
layout.show(conteneurPrincipal, "HISTORIQUE");
|
||||
}
|
||||
|
||||
public void afficherMenuCampagne() {
|
||||
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 btnCampaign;
|
||||
private JButton btnLeaderboard;
|
||||
private JButton btnHistorique;
|
||||
private JButton btnQuit;
|
||||
|
||||
public MenuPrincipal(Jeu jeu) {
|
||||
@@ -23,6 +24,7 @@ public class MenuPrincipal extends JPanel {
|
||||
btnPlay = creerBouton("PLAY");
|
||||
btnCampaign = creerBouton("CAMPAGNES");
|
||||
btnLeaderboard = creerBouton("LEADERBOARD");
|
||||
btnHistorique = creerBouton("HISTORIQUE");
|
||||
btnQuit = creerBouton("QUIT");
|
||||
|
||||
// Actions
|
||||
@@ -32,6 +34,9 @@ public class MenuPrincipal extends JPanel {
|
||||
btnCampaign.addActionListener(e -> jeu.afficherMenuCampagne());
|
||||
|
||||
btnLeaderboard.addActionListener(e -> jeu.afficherLeaderboard());
|
||||
|
||||
btnHistorique.addActionListener(e->jeu.afficherMenuHistorique());
|
||||
|
||||
btnQuit.addActionListener(e -> System.exit(0));
|
||||
|
||||
// Mise en page (espacement vertical)
|
||||
@@ -44,6 +49,8 @@ public class MenuPrincipal extends JPanel {
|
||||
add(Box.createRigidArea(new Dimension(0, 15)));
|
||||
add(btnLeaderboard);
|
||||
add(Box.createRigidArea(new Dimension(0, 15)));
|
||||
add(btnHistorique);
|
||||
add(Box.createRigidArea(new Dimension(0, 15)));
|
||||
add(btnQuit);
|
||||
add(Box.createVerticalGlue());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user