Modifier,supprimer et ajouter des données d'une base de données sur un JTable
Bonjour, svp aidez moi avec ce problème.
Après des recherches je suis toujours confus car je suis débutant en java.
J' ai ma base de données et j' affiche le contenu d'une table sur la fenetre de mon application c'est à dire avec le JTable.
Ce que je veux maintenant c'est modifier, supprimer et ajouter des données à l'aide
de 3 boutons c'est à dire bouton modifier, bouton supprimer et bouton ajouter de telle sorte que lorsque
je selectionne une donnée c'est à dire une ligne je puisse modifier avec bouton modifier, supprimer avec bouton supprimer
et ajouter avec bouton ajouter. ces boutons sont :
Code:
1 2 3 4
|
boutonsPanel2.add(resultPanel2_ajouter);
boutonsPanel2.add(resultPanel2_modifier);
boutonsPanel2.add(resultPanel2_supprimer); |
Voici mon code:
la connexion à la base de donnée est OK et c' est la methode qui fait cette conexion
les boutons sont à l 'intérieur du code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| public void voir_list_client_JTable(){
ArrayList<Client> mesCli = new ArrayList<Client>();
Connection connect =DataBaseAccess.open(); // conexion a ma base de donnée
DataBaseAccess D =new DataBaseAccess(); // la classe de conexion
try {
Statement state = connect.createStatement(); //On crée un statement
D.resultSet = D.state.executeQuery("SELECT * FROM Client"); //On exécute la requête
ResultSetMetaData meta = D.resultSet.getMetaData(); //On récupère les meta afin de récupérer le nom des colonnes
//On initialise un tableau d'Object pour les en-têtes du tableau
Object[] column = new Object[meta.getColumnCount()];
for(int i = 1 ; i <= meta.getColumnCount(); i++)
column[i-1] = meta.getColumnName(i); // les colonnes
//Petite manipulation pour obtenir le nombre de lignes
D.resultSet.last();
int rowCount = D.resultSet.getRow();
Object[][] data = new Object[D.resultSet.getRow()][meta.getColumnCount()];
//On revient au départ
D.resultSet.beforeFirst();
int j = 1;
//On remplit le tableau d'Object[][]
while(D.resultSet.next()){
for(int i = 1 ; i <= meta.getColumnCount(); i++)
data[j-1][i-1] = D.resultSet.getObject(i); // les données
j++;
}
//On ferme le tout
D.resultSet.close();
state.close();
resultPanel2.removeAll(); //On enlève le contenu de notre conteneur
JTable jtb=new JTable(data, column);
resultPanel2.add(new JScrollPane(new JTable(data, column)), BorderLayout.CENTER); //On y ajoute un JTable
boutonsPanel2.add(resultPanel2_ajouter);
boutonsPanel2.add(resultPanel2_modifier);
boutonsPanel2.add(resultPanel2_supprimer);
resultPanel2.add(boutonsPanel2, BorderLayout.SOUTH);
resultPanel2.revalidate(); //On force la mise à jour de l'affichage
centerPane2.removeAll();
centerPane2.add(resultPanel2, BorderLayout.CENTER);
this.add(centerPane2, BorderLayout.CENTER);
this.validate();
this.repaint();
} catch (SQLException e) {
resultPanel2.removeAll(); //Dans le cas d'une exception, on affiche une pop-up et on efface le contenu
resultPanel2.add(new JScrollPane(new JTable()), BorderLayout.CENTER);
resultPanel2.revalidate();
centerPane2.removeAll();
centerPane2.add(resultPanel2, BorderLayout.CENTER);
this.add(centerPane2, BorderLayout.CENTER);
this.validate();
this.repaint();
JOptionPane.showMessageDialog(null, e.getMessage(), "ERREUR ! ",JOptionPane.ERROR_MESSAGE);
}
} |