JList à la liste toString() d'une ArrayList d'Objets
J'ai une ArrayList d'objets (Une classe appelée OrderItem). OrderItem a une méthode toString() dans lui.
J'ai aussi une interface graphique à la classe dans laquelle j'ai une JList. Je veux la liste de tous les toString()'s pour les éléments de la arrayLists.
Je sais que pour une liste de tableaux de chaînes, vous pouvez les afficher dans une JList en utilisant:
ArrayList<String> myArrayList = new ArrayList<String>();
myArrayList.add("Value1");
myArrayList.add("Value2");
myJList = new JList(myArrayList.toArray());
Mais je veux la liste de la toString() les méthodes d'un objet arrayList, c'est à dire quelque chose comme:
ArrayList<OrderItem> myArrayList = new ArrayList<OrderItem>();
myJList = new JList(myArrayList.toString());
Je me rends compte qu'il y a une possibilité que JList ne prend pas en charge cette fonctionnalité, ou qu'il y a une sorte de logique de problème avec cela. Si c'est le cas pourriez-vous m'informer pourquoi? Parce que sûrement une liste de tableaux de chaînes de caractères doivent travailler d'une manière similaire à un objet arrayList est toString(). J'ai simplement envie d'être en tirant une Chaîne de valeur pour les éléments et d'utiliser ces valeurs pour ma liste.
J'ai cherché sur le web pour une réponse et n'ont pas été en mesure d'en trouver un qui m'aide, donc je viens ici pour essayer d'obtenir ce résolues.
Merci beaucoup!
Vous devez vous connecter pour publier un commentaire.
Par défaut,
JList
montre latoString
valeur de l'objet. Il n'ya donc pas besoin de convertir vos objets à cordes.Vous pouvez remplacer ce comportement de
JList
si nécessaire par la création de cellule personnalisé convertisseurs. Voir Comment Utiliser les Listes de pour plus de détails.Vous pouvez convertir la liste à un tableau et ensuite le mettre dans la liste.
En fait, la méthode toArray() affiche chaque élément de la liste de tableaux. JList ne pas montrer quoi que ce soit par défaut. Vous devez définir la visibilité en fonction de vos besoins.
Il semble que vous essayez d'afficher simplement l'objet de la méthode toString dans la liste au lieu de l'intégralité de l'objet; en d'autres termes, vous voulez simplement de l'affichage de la représentation de chaîne. au lieu de la matrice de représentation.
Vous pouvez réécrire le tableau pour représenter les données que vous souhaitez afficher (fournir les "toString construire tant que le tableau est construit):
Ensuite utiliser le tableau dans le panneau et l'utilisation de l'indice de référence de l'objet de tableau pour le traitement de l'objet.
HTH
LLB