Comment lier un Vector d'objets "User" à une JList ?

Comment lier un Vector d'objets "User" à une JList ? - Java - Programmation

Marsh Posté le 06-02-2006 à 01:52:24    

Je suis actuellement sur une application Java qui contient un Vecteur d'objets "User".
La classe User est un objet perso qui contient quelques infos sur un utilisateur.
Une fenêtre est censée afficher dans une ScrollPane contenant une JList le contenu de ce vecteur, et là je suis un peu perdu.
Je voudrais que la JList affiche simplement le nom des utilisateurs contenus dans le Vecteur.
Et de mon coté, je souhaiterais naturellement n'avoir qu'à ajouter ou supprimer des éléments à mon Vecteur pour que les modifications se répercutent sur l'interface graphique.
Dans un premier temps, j'avais codé ça comme ça :

Code :
  1. JList lst_Users;
  2. Vector<User> myVector = new Vector<User>;
  3. lst_Users = new JList(myVector);
  4. lst_Users.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  5. scrl_Friends = new JScrollPane(lst_Users);


Et ça n'a pas l'air de vouloir fonctionner, malgrès une méthode toString() existante dans ma classe "User".
Donc je ne doit pas comprendre comment fonctionne le système. Quant au fameux système "Model View Controller", j'avoue que je n'y comprend pas grand chose, et je ne parvient pas à trouver de cours simple sur ce concept, ou d'exemples simples ... C'est que ça doit être compliqué.
 
Y a-t-il une solution simple, ou faut-il passer par des techniques plus complexes ? Et dans ce cas, une idée de cours simple mais efficace qui m'aiderait ?
Merci ! :)

Message cité 1 fois
Message édité par pacproduct le 06-02-2006 à 02:56:43
Reply

Marsh Posté le 06-02-2006 à 01:52:24   

Reply

Marsh Posté le 06-02-2006 à 07:07:29    

qu'est-ce qui ne marche pas exactement ?

Reply

Marsh Posté le 06-02-2006 à 09:34:06    

pacproduct a écrit :

Je suis actuellement sur une application Java qui contient un Vecteur d'objets "User".
La classe User est un objet perso qui contient quelques infos sur un utilisateur.
Une fenêtre est censée afficher dans une ScrollPane contenant une JList le contenu de ce vecteur, et là je suis un peu perdu.
Je voudrais que la JList affiche simplement le nom des utilisateurs contenus dans le Vecteur.
Et de mon coté, je souhaiterais naturellement n'avoir qu'à ajouter ou supprimer des éléments à mon Vecteur pour que les modifications se répercutent sur l'interface graphique.
Dans un premier temps, j'avais codé ça comme ça :

Code :
  1. JList lst_Users;
  2. Vector<User> myVector = new Vector<User>;
  3. lst_Users = new JList(myVector);
  4. lst_Users.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  5. scrl_Friends = new JScrollPane(lst_Users);


Et ça n'a pas l'air de vouloir fonctionner, malgrès une méthode toString() existante dans ma classe "User".
Donc je ne doit pas comprendre comment fonctionne le système. Quant au fameux système "Model View Controller", j'avoue que je n'y comprend pas grand chose, et je ne parvient pas à trouver de cours simple sur ce concept, ou d'exemples simples ... C'est que ça doit être compliqué.
 
Y a-t-il une solution simple, ou faut-il passer par des techniques plus complexes ? Et dans ce cas, une idée de cours simple mais efficace qui m'aiderait ?
Merci ! :)


 
 
 
Plutot que de filer un vector de User, je pense que tu devrais lui filer un vector de String représentant les différents User.
Par exemple faire un truc du style

Code :
  1. JList lst_Users;
  2. Vector<String> usersName=new Vector<String>
  3. Vector<User> myVector = new Vector<User>;
  4. //Ton vector myVector est vide il faudra penser à le remplir un jour...
  5. for(int i=0;i<myVector.length();i++){
  6. usersName.add(myVector.get(i).getNom()); //a vérifier bien sur
  7. }
  8. lst_Users = new JList(usersName);
  9. lst_Users.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  10. scrl_Friends = new JScrollPane(lst_Users);


 
Code non testé car je ne travaille pas avec la jdk1.5 pour l'instant


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 06-02-2006 à 13:10:46    

trevor a écrit :

qu'est-ce qui ne marche pas exactement ?


Et bien, la liste reste vide, quoi que je fasse sur mon Vecteur d'Users.
 
----
 
Quant à la solution de faire un Vecteur de String, ça fonctionnerait surement mieux, mais cela recopie toutes les données "nom" déjà présentes dans mon vecteur d'Users, d'une part, et toute modifications que je ferais sur mon Vecteur d'User ne seraient pas automatiquement répercutés sur mon Vecteur de Strings, d'autre part. N'est-ce pas ?
 
Néanmoins, c'est une solution de secours en effet :).

Reply

Marsh Posté le 06-02-2006 à 14:05:00    

pacproduct a écrit :

Quant à la solution de faire un Vecteur de String, ça fonctionnerait surement mieux, mais cela recopie toutes les données "nom" déjà présentes dans mon vecteur d'Users, d'une part, et toute modifications que je ferais sur mon Vecteur d'User ne seraient pas automatiquement répercutés sur mon Vecteur de Strings, d'autre part. N'est-ce pas ?


oué, le ListModel est là pour ça.. cela dit, new JList(tonVector) delegue à un ListModel .. va un peu en lire la javadoc et/ou les sources, tu devrais trouver des infos...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-02-2006 à 17:22:18    

Peut-être alors que mon problème ne viens pas de la JList et du Vector en eux-même mais de ma gestion de la fenêtre ...
M'enfin, j'arrive bien à changer le texte des boutons ou autres actions simples ! Je vais regarder les docs ... de JList ou Vector ? Les deux je suppose :).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed