Problème avec DefaultListModel
Bonjour,
J'ai un problème d'utilisation avec une classe que j'ai crée héritant de la classe DefaultListModel, cela concerne la fonction remove(int index) (ainsi que la fonction removeElementAt(int index))
En fait, je veux supprimer de la liste l'item selectionné, pour cela j'ai un bouton supprimé qui fait deux choses :
- recupère l'objet selectionné. (et supprime ses correspondances dans la base)
- supprime l'objet de la liste via son index.
donc la fonction
Code:
int index = getListeVehicule().getSelectedIndex();
me renvoie le bon index et je peux accéder au infos de l'objet...
par contre quand je fais
Code:
getModeleVehicule().remove(index)
ou
Code:
getModeleVehicule().removeElementAt(index)
Cela me supprime automatiquement le dernier item de la liste.
Mes fonctions :
Code:
1 2 3 4 5 6
| private ModeleVehicule getModeleVehicule() {
if (modeleVehicule == null) {
modeleVehicule = new ModeleVehicule(vectorVehicule);
}
return modeleVehicule;
} |
Code:
1 2 3 4 5 6 7 8
| private JList getListeVehicule() {
if (listeVehicule == null) {
listeVehicule = new JList();
listeVehicule.setPreferredSize(new Dimension(200, 200));
listeVehicule.setModel(getModeleVehicule());
}
return listeVehicule;
} |
ma classe ModelVehicule :
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
| public class ModeleVehicule extends DefaultListModel {
/**
*
*/
private static final long serialVersionUID = 1L;
private Vector<Vehicule> listeDonnees;
public ModeleVehicule(Vector<Vehicule> list) {
listeDonnees = list;
setVector();
}
private void setVector() {
removeAllElements();
for (Iterator<Vehicule> iter = listeDonnees.iterator(); iter.hasNext();) {
Vehicule iteration = iter.next();
addElement(iteration.getDesignation() + " " + iteration.getImmatriculation());
}
}
public Object getElementAt(int index) {
Vehicule iteration = listeDonnees.get(index);
return iteration.getDesignation() + " " + iteration.getImmatriculation();
}
/**
* Permet de récupérer l'instance du vehicule à l'index de la comboBox/liste précisée.
* @param index = numéro d'index du véhicule recherché dans la comboBox/liste
* @return véhicule correspondant
*/
public Vehicule get(int index) {
return listeDonnees.get(index);
}
} |
Savez vous pourquoi j'obtiens cette réaction ?
Merci pour votre aide ! :)