IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

JList récupération d'objet


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait tu devrais plutôt ajouter des objets de type Etudiant à ton DefaultListModel et créer un renderer pour ta JList afin d'afficher ce qui convient.

    Cf le tuto sun sur les listes: http://java.sun.com/docs/books/tutor....html#renderer

  3. #3
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut re
    J'ai utilisé la méthode getSelectedIndex() pour retrouver l'élément à la même position dans mon ArrayList.
    Merci pour le conseil!

Discussions similaires

  1. JTable, tri et récupération des objets du tablemodel
    Par willowII dans le forum Composants
    Réponses: 1
    Dernier message: 07/12/2006, 21h00
  2. [Sécurité] Problème de récupération d'objet sérialisé
    Par Mysticlolly dans le forum Langage
    Réponses: 6
    Dernier message: 31/03/2006, 15h16
  3. [SWING][JList] Réference à un objet depuis une ligne
    Par Invité dans le forum Composants
    Réponses: 12
    Dernier message: 21/02/2006, 11h08
  4. [Swing][JList] Placer un Objet dans une liste
    Par Invité dans le forum Composants
    Réponses: 1
    Dernier message: 17/02/2006, 11h31
  5. [hibernate]Problème de récupération d'objet...
    Par roxx62 dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2005, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo