diff --git a/panel_admin_sae/logo.png b/panel_admin_sae/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..d631bc9f3c33c9b3e3cc4b8832a5fbb98904a956
Binary files /dev/null and b/panel_admin_sae/logo.png differ
diff --git a/panel_admin_sae/src/logo.png b/panel_admin_sae/src/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..d631bc9f3c33c9b3e3cc4b8832a5fbb98904a956
Binary files /dev/null and b/panel_admin_sae/src/logo.png differ
diff --git a/panel_admin_sae/src/src/Panel.java b/panel_admin_sae/src/src/Panel.java
index 21e2e75f1a421d9ece1ff1fe6a3c2bdf2ac9fcf7..079f9e0be7fa3eefa2d8dc4b48c716aee72172a6 100644
--- a/panel_admin_sae/src/src/Panel.java
+++ b/panel_admin_sae/src/src/Panel.java
@@ -1,11 +1,17 @@
 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();
diff --git a/panel_admin_sae/src/src/logo.png b/panel_admin_sae/src/src/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..d631bc9f3c33c9b3e3cc4b8832a5fbb98904a956
Binary files /dev/null and b/panel_admin_sae/src/src/logo.png differ