Probleme de suppression dans une JTable

cs_femerill Messages postés 14 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 16 novembre 2016 - 2 déc. 2009 à 12:48
cs_femerill Messages postés 14 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 16 novembre 2016 - 5 déc. 2009 à 11:30
Bonjour,
j'ai un probleme de suppression dans une JTable (2col,lignes dynamiques..)
quand je selectionne toutes mes lignes clic droit delete tout s'efface
quand je selectionne une ligne quelconque clic droit delete c'est une autre ligne qui est supprimée
quelqu'un voit ou se situe le pb ?

ma méthode removePerson...

public void removePerson(int indexRowSelected) {
persons.remove(indexRowSelected);
this.fireTableRowsDeleted(indexRowSelected, indexRowSelected);
}

public void removePerson(int[] selectedRows) {

List toDelete = new ArrayList(selectedRows.length);
for (int i = 0; i < selectedRows.length; i++) {
toDelete.add(persons.get(i));

}



et là ou je l'utilise


public class DelAction extends AbstractAction {

private int[] selectedRows = new int[0];
private PersonsModel model = null;


public DelAction(PersonsModel model) {
super("Delete?");
this.model = model;
}

public void setSelectedRows(int[] selectedRows) {

this.selectedRows = selectedRows;
setEnabled((this.selectedRows.length > 0));
}

public void actionPerformed(ActionEvent e) {
int result = JOptionPane.showConfirmDialog(null, "Voulez-vous vraiment confirmer votre choix ?",
"Confirmation de la suppression", JOptionPane.YES_NO_OPTION);
switch (result) {
case JOptionPane.YES_OPTION:

model.removePerson(selectedRows);
break;
case JOptionPane.NO_OPTION:
break;
}
}
}

4 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
3 déc. 2009 à 09:44
Salut,

quel est le lien entre la classe DelAction et les méthodes removePerson ? Il doit aussi manquer du code dans removePerson(int[] ...) car elle ne fait pas grand chose ...
0
cs_femerill Messages postés 14 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 16 novembre 2016
3 déc. 2009 à 12:43
oui j'ai oublié une partie du code de ma méthode dslé

public void removePerson(int indexRowSelected) {
persons.remove(indexRowSelected);
this.fireTableRowsDeleted(indexRowSelected, indexRowSelected);
}

public void removePerson(int[] selectedRows) {

List toDelete = new ArrayList(selectedRows.length);
for (int i = 0; i < selectedRows.length; i++) {
toDelete.add(persons.get(i));

}
for (Person person : toDelete) {
int index = persons.indexOf(person);
persons.remove(person);
this.fireTableRowsDeleted(index, index);
}
}
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
4 déc. 2009 à 10:38
A priori, je vois pas de pb.
Quand tu es en debug, tu as vérifié les indices ? ce sont les bons ?
0
cs_femerill Messages postés 14 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 16 novembre 2016
5 déc. 2009 à 11:30
salut,

comment on fait pour être en debug stp ?
ça me soule car je ne vois pas pourquoi ça me fait ça egalement car apriori je récupère bien la personne donc bizarre qu'il m'en supprime une autre..
sympa d'avoir essayé de m'aider !
god bless you
0
Rejoignez-nous