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
me renvoie le bon index et je peux accéder au infos de l'objet...
Code : Sélectionner tout - Visualiser dans une fenêtre à part int index = getListeVehicule().getSelectedIndex();
par contre quand je fais
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part getModeleVehicule().remove(index)
Cela me supprime automatiquement le dernier item de la liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part getModeleVehicule().removeElementAt(index)
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; }ma classe ModelVehicule :
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; }
Savez vous pourquoi j'obtiens cette réaction ?
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); } }
Merci pour votre aide !![]()
Partager