Skip to content
Snippets Groups Projects
Commit 86600289 authored by NeggutsMc's avatar NeggutsMc
Browse files

panel java

parent 834f1ec7
No related branches found
No related tags found
No related merge requests found
panel_admin_sae/logo.png

31 KiB

panel_admin_sae/src/logo.png

31 KiB

package src;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -13,11 +19,10 @@ import java.util.Comparator;
import java.util.Date;
public class Panel implements ActionListener {
private Connection dbConnection;
private JFrame frame;
private JTabbedPane tabbedPane;
private JPanel competitionsPanel;
private JPanel competitionsPanel, resultsPanel; // Ajout de resultsPanel ici
private JTextField lieuField, horaireField, placesField;
private JButton addButton, deleteButton, updateButton, loginButton;
private JTable competitionsTable;
......@@ -26,11 +31,13 @@ public class Panel implements ActionListener {
private JPasswordField passwordField;
private boolean isLoggedIn = false;
public Panel(Connection connection) {
this.dbConnection = connection;
frame = new JFrame("Panel");
frame.setSize(800, 600);
frame.setSize(1280, 720); // Résolution HD
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
......@@ -39,17 +46,20 @@ public class Panel implements ActionListener {
e.printStackTrace();
}
tabbedPane = new JTabbedPane();
// Add the login panel
JPanel loginPanel = createLoginPanel();
tabbedPane.addTab("Login", loginPanel);
// Add the competitions panel but set it as disabled initially
competitionsPanel = createCompetitionsPanel();
tabbedPane.addTab("Gérer Compétitions", competitionsPanel);
tabbedPane.setEnabledAt(1, false);
resultsPanel = createResultsPanel();
tabbedPane.addTab("Gérer Scores", resultsPanel);
frame.add(tabbedPane);
frame.setVisible(true);
}
......@@ -62,16 +72,37 @@ public class Panel implements ActionListener {
gbc.insets = new Insets(15, 15, 15, 15);
gbc.fill = GridBagConstraints.HORIZONTAL;
// Chargement et ajout du logo redimensionné
try {
BufferedImage logoImage = ImageIO.read(new File("logo.png"));
// Redimensionner le logo
int newWidth = 100; // Largeur souhaitée
int newHeight = 100; // Hauteur souhaitée
Image resizedImage = logoImage.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);
ImageIcon logoIcon = new ImageIcon(resizedImage);
JLabel logoLabel = new JLabel(logoIcon);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 2;
panel.add(logoLabel, gbc);
gbc.gridy = 1; // Incrémentation de la position Y pour le titre
} catch (IOException e) {
e.printStackTrace();
}
// Ajout du titre
JLabel titleLabel = new JLabel("Connexion");
titleLabel.setFont(new Font("Arial", Font.BOLD, 36));
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 2;
panel.add(titleLabel, gbc);
// Ajout du label et champ pour le nom d'utilisateur
JLabel usernameLabel = new JLabel("Nom d'utilisateur:");
usernameLabel.setFont(new Font("Arial", Font.PLAIN, 20));
gbc.gridy = 1;
gbc.gridy = 2;
gbc.gridwidth = 1;
panel.add(usernameLabel, gbc);
......@@ -80,10 +111,11 @@ public class Panel implements ActionListener {
gbc.gridx = 1;
panel.add(loginField, gbc);
// Ajout du label et champ pour le mot de passe
JLabel passwordLabel = new JLabel("Mot de passe:");
passwordLabel.setFont(new Font("Arial", Font.PLAIN, 20));
gbc.gridx = 0;
gbc.gridy = 2;
gbc.gridy = 3;
panel.add(passwordLabel, gbc);
passwordField = new JPasswordField(25);
......@@ -91,14 +123,16 @@ public class Panel implements ActionListener {
gbc.gridx = 1;
panel.add(passwordField, gbc);
// Ajout du bouton de connexion
loginButton = new JButton("Connexion");
loginButton.setFont(new Font("Arial", Font.BOLD, 20));
loginButton.addActionListener(this);
gbc.gridx = 0;
gbc.gridy = 3;
gbc.gridy = 4;
gbc.gridwidth = 2;
panel.add(loginButton, gbc);
// Action lors de l'appui sur 'Entrée' dans le champ du mot de passe
passwordField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
......@@ -109,49 +143,80 @@ public class Panel implements ActionListener {
return panel;
}
private JPanel createCompetitionsPanel() {
JPanel panel = new JPanel(new BorderLayout());
competitionsTableModel = new DefaultTableModel();
// Créer un modèle de tableau avec une surcharge de isCellEditable
competitionsTableModel = new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {
// Rendre toutes les cellules non éditables
return false;
}
};
competitionsTableModel.addColumn("ID");
competitionsTableModel.addColumn("Lieu");
competitionsTableModel.addColumn("Horaire");
competitionsTableModel.addColumn("Places Disponibles");
competitionsTable = new JTable(competitionsTableModel);
TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<>(competitionsTableModel);
competitionsTable.setRowSorter(sorter);
sorter.setComparator(0, Comparator.<Object, Integer>comparing(o -> (Integer) o));
sorter.setComparator(3, Comparator.<Object, Integer>comparing(o -> (Integer) o));
sorter.setComparator(0, Comparator.comparingInt(o -> (Integer) o));
sorter.setComparator(3, Comparator.comparingInt(o -> (Integer) o));
JScrollPane scrollPane = new JScrollPane(competitionsTable);
panel.add(scrollPane, BorderLayout.CENTER);
JPanel inputPanel = new JPanel(new GridLayout(4, 2, 10, 10)); // Ajout de l'espacement entre les composants
inputPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // Ajout de marges
competitionsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent event) {
if (!event.getValueIsAdjusting() && competitionsTable.getSelectedRow() != -1) {
int selectedRow = competitionsTable.getSelectedRow();
if (selectedRow >= 0 && selectedRow < competitionsTableModel.getRowCount()) {
String lieu = (String) competitionsTableModel.getValueAt(selectedRow, 1);
String horaire = (String) competitionsTableModel.getValueAt(selectedRow, 2);
String places = String.valueOf(competitionsTableModel.getValueAt(selectedRow, 3));
lieuField.setText(lieu);
horaireField.setText(horaire);
placesField.setText(places);
}
}
}
});
JPanel inputPanel = new JPanel(new GridLayout(4, 2, 10, 10));
inputPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
inputPanel.add(new JLabel("Lieu:"));
lieuField = new JTextField();
lieuField.setToolTipText("Entrez le lieu de la compétition");
inputPanel.add(lieuField);
inputPanel.add(new JLabel("Horaire (yyyy-MM-dd HH:mm:ss):"));
horaireField = new JTextField();
horaireField.setToolTipText("Entrez l'horaire au format yyyy-MM-dd HH:mm:ss");
inputPanel.add(horaireField);
inputPanel.add(new JLabel("Places Disponibles:"));
placesField = new JTextField();
placesField.setToolTipText("Entrez le nombre de places disponibles");
inputPanel.add(placesField);
addButton = new JButton("Ajouter");
deleteButton = new JButton("Supprimer");
updateButton = new JButton("Modifier");
addButton.addActionListener(this);
deleteButton = new JButton("Supprimer");
deleteButton.addActionListener(this);
updateButton = new JButton("Modifier");
updateButton.addActionListener(this);
JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 10, 0)); // Ajout de l'espacement entre les boutons
JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 10, 0));
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
......@@ -167,6 +232,8 @@ public class Panel implements ActionListener {
return panel;
}
private void loadCompetitionsData() {
competitionsTableModel.setRowCount(0);
try {
......@@ -185,22 +252,35 @@ public class Panel implements ActionListener {
}
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(frame, "Erreur lors du chargement des données.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// Gestion de l'événement de clic sur le bouton de connexion
if (e.getSource() == loginButton) {
authenticateUser();
} else if (e.getSource() == addButton && isLoggedIn) {
addCompetition();
} else if (e.getSource() == deleteButton && isLoggedIn) {
deleteCompetition();
} else if (e.getSource() == updateButton && isLoggedIn) {
updateCompetition();
}
// Gestion de l'événement de clic sur le bouton "Ajouter"
else if (e.getSource() == addButton && isLoggedIn) {
showAddCompetitionDialog(); // Ouvre la boîte de dialogue pour ajouter une compétition
}
// Gestion de l'événement de clic sur le bouton "Supprimer"
else if (e.getSource() == deleteButton && isLoggedIn) {
deleteCompetition(); // Supprime la compétition sélectionnée
}
// Gestion de l'événement de clic sur le bouton "Modifier"
else if (e.getSource() == updateButton && isLoggedIn) {
updateCompetition(); // Met à jour la compétition sélectionnée
}
}
private void authenticateUser() {
String enteredLogin = loginField.getText();
char[] enteredPasswordChars = passwordField.getPassword();
......@@ -227,47 +307,81 @@ public class Panel implements ActionListener {
}
}
private void addCompetition() {
try {
String lieu = lieuField.getText();
String horaireStr = horaireField.getText();
String placesStr = placesField.getText();
private void showAddCompetitionDialog() {
JDialog addDialog = new JDialog(frame, "Ajouter une Compétition", true);
addDialog.setLayout(new GridLayout(0, 2));
addDialog.setSize(400, 200);
JTextField addLieuField = new JTextField();
JTextField addDateField = new JTextField(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
SpinnerDateModel timeModel = new SpinnerDateModel();
JSpinner addTimeSpinner = new JSpinner(timeModel);
JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(addTimeSpinner, "HH:mm:ss");
addTimeSpinner.setEditor(timeEditor);
JTextField addPlacesField = new JTextField();
addDialog.add(new JLabel("Lieu:"));
addDialog.add(addLieuField);
addDialog.add(new JLabel("Date (yyyy-MM-dd):"));
addDialog.add(addDateField);
addDialog.add(new JLabel("Heure (HH:mm:ss):"));
addDialog.add(addTimeSpinner);
addDialog.add(new JLabel("Places Disponibles:"));
addDialog.add(addPlacesField);
JButton submitButton = new JButton("Ajouter");
submitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String lieu = addLieuField.getText().trim();
String date = addDateField.getText().trim();
String time = timeEditor.getFormat().format(addTimeSpinner.getValue());
String places = addPlacesField.getText().trim();
if (lieu.isEmpty() || places.isEmpty()) {
JOptionPane.showMessageDialog(addDialog, "Le lieu et le nombre de places disponibles ne peuvent pas être vides.", "Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
if (!placesStr.isEmpty()) {
try {
int placesDisponibles = Integer.parseInt(placesStr);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsedDate = sdf.parse(horaireStr);
String dateTime = date + " " + time;
Date parsedDate = sdf.parse(dateTime);
Timestamp horaire = new Timestamp(parsedDate.getTime());
int placesDisponibles = Integer.parseInt(places);
PreparedStatement stmt = dbConnection.prepareStatement("INSERT INTO competitions (Lieu, Horaire, PlacesDisponibles) VALUES (?, ?, ?)");
// Insertion des données dans la base de données
PreparedStatement stmt = dbConnection.prepareStatement(
"INSERT INTO competitions (Lieu, Horaire, PlacesDisponibles) VALUES (?, ?, ?)");
stmt.setString(1, lieu);
stmt.setTimestamp(2, horaire);
stmt.setInt(3, placesDisponibles);
int rowsAffected = stmt.executeUpdate();
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(frame, "Compétition ajoutée avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadCompetitionsData();
JOptionPane.showMessageDialog(addDialog, "Compétition ajoutée avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadCompetitionsData(); // Mettre à jour la liste des compétitions
} else {
JOptionPane.showMessageDialog(frame, "Erreur lors de l'ajout de la compétition.", "Erreur", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(addDialog, "Erreur lors de l'ajout de la compétition.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
addDialog.dispose();
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "Veuillez entrer un nombre valide pour les places disponibles.", "Erreur", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(addDialog, "Le nombre de places doit être un nombre valide.", "Erreur", JOptionPane.ERROR_MESSAGE);
} catch (ParseException ex) {
JOptionPane.showMessageDialog(frame, "Format de date invalide.", "Erreur", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(addDialog, "Format de date ou d'heure invalide.", "Erreur", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(addDialog, "Erreur lors de l'accès à la base de données.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(frame, "Veuillez entrer un nombre pour les places disponibles.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
});
addDialog.add(submitButton);
addDialog.setVisible(true);
}
private void deleteCompetition() {
int selectedRow = competitionsTable.getSelectedRow();
if (selectedRow != -1) {
......@@ -296,49 +410,215 @@ public class Panel implements ActionListener {
private void updateCompetition() {
int selectedRow = competitionsTable.getSelectedRow();
if (selectedRow != -1) {
try {
int competitionID = (int) competitionsTableModel.getValueAt(selectedRow, 0);
String lieu = lieuField.getText();
String horaireStr = horaireField.getText();
String placesStr = placesField.getText();
int competitionID = (int) competitionsTableModel.getValueAt(selectedRow, 0);
String lieu = lieuField.getText();
String horaireStr = horaireField.getText();
String placesStr = placesField.getText();
if (!horaireStr.isEmpty()) { // Ajout de la vérification de non-nullité et non-vacuité
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsedDate = sdf.parse(horaireStr);
Timestamp horaire = new Timestamp(parsedDate.getTime());
if (lieu.isEmpty() || horaireStr.isEmpty() || placesStr.isEmpty()) {
JOptionPane.showMessageDialog(frame, "Tous les champs doivent être remplis.", "Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
int placesDisponibles = Integer.parseInt(placesStr);
try {
int placesDisponibles = Integer.parseInt(placesStr);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsedDate = sdf.parse(horaireStr);
Timestamp horaire = new Timestamp(parsedDate.getTime());
PreparedStatement stmt = dbConnection.prepareStatement("UPDATE competitions SET Lieu = ?, Horaire = ?, PlacesDisponibles = ? WHERE CompetitionID = ?");
stmt.setString(1, lieu);
stmt.setTimestamp(2, horaire);
stmt.setInt(3, placesDisponibles);
stmt.setInt(4, competitionID);
PreparedStatement stmt = dbConnection.prepareStatement("UPDATE competitions SET Lieu = ?, Horaire = ?, PlacesDisponibles = ? WHERE CompetitionID = ?");
stmt.setString(1, lieu);
stmt.setTimestamp(2, horaire);
stmt.setInt(3, placesDisponibles);
stmt.setInt(4, competitionID);
int rowsAffected = stmt.executeUpdate();
int rowsAffected = stmt.executeUpdate();
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(frame, "Compétition mise à jour avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadCompetitionsData();
} else {
JOptionPane.showMessageDialog(frame, "Erreur lors de la mise à jour de la compétition.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(frame, "Compétition mise à jour avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadCompetitionsData();
} else {
JOptionPane.showMessageDialog(frame, "Veuillez entrer une date valide.", "Erreur", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(frame, "Erreur lors de la mise à jour de la compétition.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException | ParseException | NumberFormatException ex) {
} catch (NumberFormatException | ParseException ex) {
JOptionPane.showMessageDialog(frame, "Format de date ou nombre de places invalide.", "Erreur", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(frame, "Erreur lors de la mise à jour de la compétition.", "Erreur", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(frame, "Erreur lors de l'accès à la base de données.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(frame, "Veuillez sélectionner une compétition à mettre à jour.", "Sélection requise", JOptionPane.WARNING_MESSAGE);
}
}
private JPanel createResultsPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
// Création du modèle de tableau
DefaultTableModel resultsTableModel = new DefaultTableModel();
resultsTableModel.addColumn("ResultatID");
resultsTableModel.addColumn("CompetitionID");
resultsTableModel.addColumn("Gagnant");
resultsTableModel.addColumn("Score");
// Création du JTable pour afficher les résultats
JTable resultsTable = new JTable(resultsTableModel);
// Chargement des données dans le tableau
loadResultsData(resultsTableModel);
// Ajout du tableau à un JScrollPane et ensuite au panel
JScrollPane scrollPane = new JScrollPane(resultsTable);
panel.add(scrollPane, BorderLayout.CENTER);
// Création du panneau pour les entrées utilisateur
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new GridLayout(0, 2, 10, 10)); // Mise en page en grille
inputPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
// Ajout des champs de saisie et des étiquettes
inputPanel.add(new JLabel("ResultatID:"));
JTextField resultatIDField = new JTextField();
inputPanel.add(resultatIDField);
inputPanel.add(new JLabel("CompetitionID:"));
JTextField competitionIDField = new JTextField();
inputPanel.add(competitionIDField);
inputPanel.add(new JLabel("Gagnant:"));
JTextField gagnantField = new JTextField();
inputPanel.add(gagnantField);
inputPanel.add(new JLabel("Score:"));
JTextField scoreField = new JTextField();
inputPanel.add(scoreField);
// Ajout des boutons pour ajouter, supprimer, et mettre à jour
JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 10, 0));
JButton addButton = new JButton("Ajouter");
JButton deleteButton = new JButton("Supprimer");
JButton updateButton = new JButton("Mettre à jour");
// Ajout des écouteurs d'événements pour les boutons
addButton.addActionListener(e -> addMatchScore(resultatIDField, competitionIDField, gagnantField, scoreField, resultsTableModel));
deleteButton.addActionListener(e -> deleteMatchScore(resultatIDField, resultsTableModel));
updateButton.addActionListener(e -> updateMatchScore(resultatIDField, competitionIDField, gagnantField, scoreField, resultsTableModel));
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
// Ajout des panneaux d'entrée et des boutons au panneau principal
JPanel southPanel = new JPanel(new BorderLayout());
southPanel.add(inputPanel, BorderLayout.NORTH);
southPanel.add(buttonPanel, BorderLayout.SOUTH);
panel.add(southPanel, BorderLayout.SOUTH);
return panel;
}
private void loadResultsData(DefaultTableModel resultsTableModel) {
resultsTableModel.setRowCount(0); // Effacer les données existantes
try {
Statement stmt = dbConnection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM resultats");
while (rs.next()) {
int resultatID = rs.getInt("ResultatID");
int competitionID = rs.getInt("CompetitionID");
String gagnant = rs.getString("Gagnant");
String score = rs.getString("Score");
resultsTableModel.addRow(new Object[]{resultatID, competitionID, gagnant, score});
}
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(frame, "Erreur lors du chargement des données des résultats.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
private void addMatchScore(JTextField resultatIDField, JTextField competitionIDField, JTextField gagnantField, JTextField scoreField, DefaultTableModel resultsTableModel) {
try {
int resultatID = Integer.parseInt(resultatIDField.getText());
int competitionID = Integer.parseInt(competitionIDField.getText());
String gagnant = gagnantField.getText();
String score = scoreField.getText();
PreparedStatement stmt = dbConnection.prepareStatement("INSERT INTO resultats (ResultatID, CompetitionID, Gagnant, Score) VALUES (?, ?, ?, ?)");
stmt.setInt(1, resultatID);
stmt.setInt(2, competitionID);
stmt.setString(3, gagnant);
stmt.setString(4, score);
int rowsAffected = stmt.executeUpdate();
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(frame, "Score ajouté avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadResultsData(resultsTableModel); // Recharger les données
} else {
JOptionPane.showMessageDialog(frame, "Erreur lors de l'ajout du score.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (NumberFormatException | SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(frame, "Erreur lors de l'ajout du score.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
private void deleteMatchScore(JTextField resultatIDField, DefaultTableModel resultsTableModel) {
try {
int resultatID = Integer.parseInt(resultatIDField.getText());
PreparedStatement stmt = dbConnection.prepareStatement("DELETE FROM resultats WHERE ResultatID = ?");
stmt.setInt(1, resultatID);
int rowsAffected = stmt.executeUpdate();
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(frame, "Score supprimé avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadResultsData(resultsTableModel); // Recharger les données
} else {
JOptionPane.showMessageDialog(frame, "Erreur lors de la suppression du score.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (NumberFormatException | SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(frame, "Erreur lors de la suppression du score.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
private void updateMatchScore(JTextField resultatIDField, JTextField competitionIDField, JTextField gagnantField, JTextField scoreField, DefaultTableModel resultsTableModel) {
try {
int resultatID = Integer.parseInt(resultatIDField.getText());
int competitionID = Integer.parseInt(competitionIDField.getText());
String gagnant = gagnantField.getText();
String score = scoreField.getText();
PreparedStatement stmt = dbConnection.prepareStatement("UPDATE resultats SET CompetitionID = ?, Gagnant = ?, Score = ? WHERE ResultatID = ?");
stmt.setInt(1, competitionID);
stmt.setString(2, gagnant);
stmt.setString(3, score);
stmt.setInt(4, resultatID);
int rowsAffected = stmt.executeUpdate();
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(frame, "Score mis à jour avec succès.", "Succès", JOptionPane.INFORMATION_MESSAGE);
loadResultsData(resultsTableModel); // Recharger les données
} else {
JOptionPane.showMessageDialog(frame, "Erreur lors de la mise à jour du score.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (NumberFormatException | SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(frame, "Erreur lors de la mise à jour du score.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "");
new Panel(connection);
} catch (SQLException e) {
e.printStackTrace();
......
panel_admin_sae/src/src/logo.png

31 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment