slt
comment afficher les elements d'un ArrayList sur une JList puis choisir quelque champs de cette dernière et les afficher sur une autre JList.
merci d'avance
slt
comment afficher les elements d'un ArrayList sur une JList puis choisir quelque champs de cette dernière et les afficher sur une autre JList.
merci d'avance
Bonjour,
Pour répondre à ta question cela dépends de ce que tu souhaites excatement faire. Mais prenons le cas le plus simple. Si ton cas est plus compliqué, expose le plus précisément.
Je suppose ici que tu as remplit une java.util.ArrayList que l'on nomera pour la la suite listSource. Je supose que tu souhaites transférer telquels les éléments de listSource vers une javax.swing.JList. Pour cela il te faut d'abord créer un javax.swing.DefaultListModel que tu rempliras, puis que tu donneras as ta javax.swing.JList.
Ce qui peut donner par exemple :
Voila ta liste de remplit.
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 //...... //Création du model DefaultListModel listModel = new DefaultListModel(); //Remplir le model int size = listSource.size(); for(int index=0; index<size; index++) { listModel.addElement(listSource.get(index)); } //Donné le model à la liste listToFill.setModel(listModel);
Ensuite pour l'autre partie je vais te donner quelques pistes a toi de creuser en fouillant sur la FAQ tu devrais t'en sortir. Si tu éprouves des difficultées n'hésites pas à nous poser des questions précises.
1) Créer un modèle pour la liste cible (voir ci-dessus). C'est ce modèle que tu rempliras. N'oublies pas de donné ce nouveau modèle à ta liste cible.
2) Récupérer la sélection actuelle dans la liste source grâce à la méthode getSelectedValues()
3) Copier la sélection dans le modèle de la cible (inspire toi du code ci-dessus)
A bientôt,
JHelp
Salut,
Pour la création de la JList à partir de d'un ArrayList, il y a plus rapide.
Si tu initialise ta JList alors que l'ArrayList existe déjà tu peux faire :
Si la JList existe déjà et que tu veux changer la liste tu peux faire ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JList laListe = new JList(monArrayList.toArray());
A++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 laListe.setListData(monArrayList.toArray());
Bonjour,
Désolé de remonter un vieux post mais mon problème correspond excactement !!!
En fait j'ai utilisé la technique de extraman1 pour afficher le contenu d'une collection dans une JListe!
Le problème :
http://img189.imageshack.us/my.php?i...airescreen.jpg
Sur ma Jlist les informations sont cryptées apperement!
Comment ça se fait ? Comment faire apparaître le nom, prénom etc... et non Contact@1a0c10f ??
Mon code d'affichage :
Merci d'avance à celui ou celle qui m'aidera !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ArrayList<contact> lesContacts = new ArrayList<contact>(); private JList liste = new JList(lesContacts.toArray()); //Quand j'appuie sur le bouton valider : liste.setListData(lesContacts.toArray());
Ca ressemble vachement à une description + adresse de l'objet ça...
Essaye d'implémenter un toString dans ta classe Contact.
les Contacts.toArray() ne renvoie pas des strings mais des objets. Ainsi tu n'obtient pas le nom du contact. Il faut que la liste de data que tu envoie à la JList soit composée de string. Comme le dit Antoine, implémente une méthode toString dans ta classe Contact.
Déjà merci à Antoine_935, HozakaN et chepac du chat pour les reponses rapide!
J'ai créé ma méthode .toString() dans ma classe contact.
Cependant j'ai un petit problème pour l'utiliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public String toString() { return "Nom: " + donneNom() + " Prenom:" + donnePrenom() + " Téléphone:" + donneTel() + " Email:" + donneEmail(); }
J'envoi les objets de cette manière dans ma collection
C'est ici que je dois appliquer mon toString() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 unContact.changeNom(tf1.getText()); unContact.changePrenom(tf2.getText()); unContact.changeTel(tf3.getText()); unContact.changeEmail(tf4.getText());
Je débute, c'est possible que ma question vous paraisse stupide.
EN FAIT çA MARCHE, j'avais pas testé! le fait de créer la méthode suffit apparement !
Je suis étonné!
En tout cas merci à vous ; )
Salut,
Ne sois pas étonné, c'est juste que le composant JList (et pas que lui d'ailleurs) est codé de telle manière à appeler automatiquement la méthode toString() pour afficher les données de son modèle!
Partager