[java] une liste d'objets dans une JComboBox
Résolu
moussecp
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
moussecp Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
moussecp Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour, c'est encore moi.
Cette fois-ci je souhaiterais générer une JComboBox avec des objets en guise d'éléments.
Dans mon cas, j'ai une liste d'éléments de type "Date" :
Je sais que lorsque je décide d'afficher une date de la manière d'un affichage de String avec :
De plus, j'utilise NetBeans, donc je ne suis pas 100% libre de mes mouvements. En créant une JComboBox, il me génère automatiquement les ligne suivantes :
Or moi en essayant ceci :
où getComboBoxFavoritesList() est une méthode qui me retourne FavoritesList définit ci-dessus... Bah ça fonctionne pas.
J'ai passé la journée sur internet à éplucher des documentations pour trouver des réponses mais là je commence à désespérer. =/
Je note par exemple que sur la documentation de DefaultComboBoxModel
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/DefaultComboBoxModel.html
un des constructeurs gère les objets... Donc je ne comprends vraiment pas où est le problème.
Merci pour votre aide.
Une signature ? Pas besoin de signature.
Cette fois-ci je souhaiterais générer une JComboBox avec des objets en guise d'éléments.
Dans mon cas, j'ai une liste d'éléments de type "Date" :
List<Date> FavoritesList = new ArrayList();
Je sais que lorsque je décide d'afficher une date de la manière d'un affichage de String avec :
System.out.println(FavoritesList.get(index));on m'affiche une jolie date sans problème. Donc je me dis que je pourrais faire la même chose dans mon JComboBox.
De plus, j'utilise NetBeans, donc je ne suis pas 100% libre de mes mouvements. En créant une JComboBox, il me génère automatiquement les ligne suivantes :
private javax.swing.JComboBox FavoritesComboBox; ... FavoritesComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Element 1", "Element 2", "Element 3" })); FavoritesComboBox.setName("FavoritesComboBox");Ce qui fonctionne parfaitement.
Or moi en essayant ceci :
FavoritesComboBox.setModel(new javax.swing.DefaultComboBoxModel(FavoritesManager.getComboBoxFavoritesList())); FavoritesComboBox.setName("FavoritesComboBox");
où getComboBoxFavoritesList() est une méthode qui me retourne FavoritesList définit ci-dessus... Bah ça fonctionne pas.
J'ai passé la journée sur internet à éplucher des documentations pour trouver des réponses mais là je commence à désespérer. =/
Je note par exemple que sur la documentation de DefaultComboBoxModel
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/DefaultComboBoxModel.html
un des constructeurs gère les objets... Donc je ne comprends vraiment pas où est le problème.
Merci pour votre aide.
Une signature ? Pas besoin de signature.
A voir également:
- [java] une liste d'objets dans une JComboBox
- Liste déroulante excel - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Site pour vendre des objets d'occasion - Guide
- Eclipse java - Télécharger - Langages
1 réponse
1) Il faudrait préciser le type Date dans ton initialisation de liste (remarque : vu ce que tu veux faire, il peut être plus intéressant d'utiliser une LinkedList)
2) DefaultComboBoxModel prend en paramètre un tableau or toi tu lui fourni une liste !
Tu dois d'abord construire un tableau avant de le passer en paramètre...
La confiance n'exclut pas le contrôle
List<Date> FavoritesList = new LinkedList<Date>();
2) DefaultComboBoxModel prend en paramètre un tableau or toi tu lui fourni une liste !
Tu dois d'abord construire un tableau avant de le passer en paramètre...
Date[] tab = FavoritesList.toArray(new Date[FavoritesList.size()]); DefaultComboBoxModel def = new DefaultComboBoxModel(tab); FavoritesComboBox.setModel(def);
La confiance n'exclut pas le contrôle
Quoi qu'il en soit, j'ai en effet modifié ma définition de FavoritesList et j'ai fait la modification en Array en copiant/collant tes lignes. Cependant on me renvoi l'erreur suivante pour la ligne 1 :
illegal forward reference
Pour ton problème, je pense que tu devrais permuter les lignes 1 et 2.
En effet tu déclares dcbm en l'initialisant avec ArrayOfFavorites qui n'est pas encore déclaré...
D'ailleurs dans mon code tab était bien déclaré avant def, c'est donc une erreur de copier-coller ^^
ça fonctionne nickel