JList récupération d'objet
Bonsoir à tous et toutes,
Je me suis bien dirigé dans le forum et ai abouti ici, donc je vais vous parler d'un composant JList. Mon problème est le suivant; j'ai créé une JList (contenue dans une JSlitPane, mais là n'est pas le plus important) que j'ai initialisée grâce à une instance de la classe DefaultListModel que j'ai garnie de chaînes de caractère (String) pour chaque élément ajouté correspond le nom d'un étudiant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| //On définit un model de liste que l'on intégrera à la JList du JSplitPane
DefaultListModel l1= new DefaultListModel();
//On garnit ce modèle avec les noms de l'arrayList d'Etudiant
/* Iterator n=(pol.getListeEtudiant()).iterator();
while(n.hasNext())
l1.addElement(((Etudiant)n.next()).getNom());*/
for(int i=0;i<this.getPol().getListeEtudiant().size();i++){
//l1.addElement(pol.getListeEtudiant().get(i).getNom()+" | "+pol.getListeEtudiant().get(i).getPrenom());
l1.addElement(pol.getListeEtudiant().get(i).getNom());
}
//On crée les 2 composants du JSplitPane
JList jsp1=new JList(l1); //on intègre le modele à la JList |
(nb : je suis parvenu également à afficher le prénom, mais pour retrouver l'étudiant à surpprimer dans la liste je ne vois pas comment décomposer le retour de getSelecterValue() pour avoir: le nom et le prénom séparément et faire une recherche comme cela...)
Comme vous pouvez le voir j'avais déjà testé certaines méthodes ^^
En résultat, j'ai une JSlitPane contenant une JList qui est garnie des noms d'étudiant. Je voulais créer un JButton qui me permette de supprimer un objet de la liste d'étudiant à partir donc de son nom sélectionné dans la JList, j'ai donc employé la méthode getSelectedValue() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| //TEST : on récupère le nom de l'étudiant selectionné:
//Object recup=((JList)ListeEtudiant.this.jspEtudiants.getLeftComponent()).getSelectedValue();
//System.out.println(recup.getClass()); -> Renvoi une chaîne de caractère.
Object recup=((JList)FenetreListeEtudiant.this.jspEtudiants.getLeftComponent()).getSelectedValue();
//Etudiant selection=ListeEtudiant.this.getPol().getEtudiantFromList((String)recup);
//System.out.println(selection.toString());
//System.out.println(recup); //Affiche bien le nom sélectionné
Etudiant selection=FenetreListeEtudiant.this.getPol().getEtudiantFromList((String)recup);
FenetreListeEtudiant.this.pol.supprimerEtudiant(selection);
FenetreListeEtudiant maj=new FenetreListeEtudiant(FenetreListeEtudiant.this.getPol());
maj.setVisible(true);
FenetreListeEtudiant.this.hide(); |
Mais le problème est que lorsque, dans ma JList, je sélectionne le deuxième élément, il ne supprime rien. Peut-être que cela provient de la msie à jour de la fenêtre. Je m'y prend peut-être mal en réinstanciant une fenêtre avec l'objet "pol" qui a été modifié. (pol contenant l'ArrayList<Etudiant>)
Merci d'avance pour vos conseils.