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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
getModeleVehicule().remove(index)
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
getModeleVehicule().removeElementAt(index)
Cela me supprime automatiquement le dernier item de la liste.

Mes fonctions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
private ModeleVehicule getModeleVehicule() {
		if (modeleVehicule == null) {
			modeleVehicule = new ModeleVehicule(vectorVehicule);
		}
		return modeleVehicule;
	}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !