Suppression d'une ligne dans jTable

kawtar_ch Messages postés 41 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 17 juillet 2008 - 1 août 2007 à 16:38
 Armand - 22 févr. 2015 à 20:15
Salut tout le monde!!

j'ai un jTable qui récupère les données via une BDD access.
je voudrais en cliquant sur un bouton supprimer, supprimer la ligne selectionnée dans ma jtable et que cette meme ligne soit supprimer dans ma table access
 comment faire pour cela?

Merci pour votre aide
si quelqu'un a un exemple je lui en serai tres reconnaissante

5 réponses

nassertom Messages postés 43 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 août 2009
28 août 2007 à 22:14
Bonsoir,

Je suis débutant en java alors il est possible que ma solution ne soit pas la bonne (les admins me reprendrons !!!)

Alors pour supprimer un enregistrement dans une jtable, tous dépend de comment tu as enregistré tes donné :

si tu as utilisé un model, la suppréssion dans le model effacera l'enregistrement dans la jtable.

pour ce qui est de la base de donné access (j'ai tjrs des bug avec acces !!) une simple request delete fera l'afaire.

sinon si tu n'utilise pas de model mais un TableModel (exemple avec JDBCAdapter de sun) je ne sais pas faire et dans ce cas
ce que je fais c'est une suppression de la ligne dans la base de donnée, puis à nouveau ma request pour afficher sans la ligne.

exemple (recupération de la ou les lignes selectionné(s) puis execution de la suppression :
        if (myTable.isEditing()) {
            if (myTable.getCellEditor() != null) {
                myTable.getCellEditor().stopCellEditing();
            }
        }

        int[] selected = myTable.getSelectedRows();
        for (int i = selected.length - 1; i >= 0; i--) {
            System.out.println("remouve " + selected[i]);
            System.out.println(myTable.getModel().getValueAt(selected[i],0));
            String requete="DELETE FROM CRA WHERE Index = " + myTable.getModel().getValueAt(selected[i],0)  +";";
           BDD.ajoutSup(requete);
           
           // myTable.getModel().(selected[i],0)
            //ici tu fais ta request pour actualiser l'affichage en rechargant ta jtable (comme tu as fait au depart)
        }}

je sais que c pas terrible et pas optimisé car tu fais appel a la base de donné autant de fois que tu as de ligne selectionné (sinon modifier la request)
et en plus tu refais une request pour l'affichage.

si quelqu'un sais comment mettre à jour une TableModel

Bon courage

NasserTom
0
nassertom Messages postés 43 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 août 2009
28 août 2007 à 22:21
oups !!

pour supprimer un enregistrement dans un model
 model.removeRow(i);

et pour faire le lien avec mon code precedent
 model.removeRow(selected[i]);

selected est un tableau contenant l'index des lignes selectionné
tu boucles sur ce tableau
ainsi selected[0] est egale à ta premiere ligne selectionné (exemple la ligne 15)
désolé si mon explication est trop gaga (car il est probable que ton niveau en java soit sup au mien)

NasserTom
0
joseedmondmek Messages postés 4 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 6 novembre 2009
6 nov. 2009 à 09:19
Salut NasserTom,
Merci beaucoup pour le fragment de code que tu as proposé à kawtar_ch pour selectionner une ligne de la jtable, la supprimer en mettant à jour la base de donnée.
j'aimerais egalement utiliser un bouton AJOUTER pour ajouter une ligne dans mon jtable et qu'elle soit aussi ajouter dans la BD; Et un bouton MODIFIER pour modifier une ligne de mon jtable et que cette ligne soit egalement modifiée dans la BD.
Plaese propose moi des fragments de code pour
faire cela. je code en java et BD = posgresql.
Merci beaucoup de me repondre
0
hmbennani Messages postés 2 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 21 mai 2012
22 mai 2010 à 20:52
Merciiii Nassertom ton code m'a bcp aidé merciii encore :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci NasserTom,
j'ai beaucoup perdu le temps à chercher, comment retrouver l'id de ma table dans la base de données connaissant l'index avec getSelectedRow . mais je viens de rendre compte de la method getValueAt.
0
Rejoignez-nous