10
votes

Comment utiliser l'élément de carte comme texte d'un JCOMBOBOX

Je suis peuplé d'un JCOMBOBOX (en utilisant additem () ) avec tous les éléments d'une collection. Chaque élément de la collection est un hashmap (donc c'est une combinaison de hashmaps ..).

Ma question est donnée que j'ai besoin que chaque élément soit un hashmap Comment puis-je définir le texte sur Aquear dans le ComboBox sur l'interface graphique? Il doit être la valeur d'une certaine clé sur la carte. Normalement, si je peuploie une combinaison avec mon propre type, je manipulerais simplement la méthode Tostring () ... mais je ne suis pas sûr de la réalisation de cela depuis que j'utilise un haschmap Java.

Des idées (si possible, sans mettre en œuvre mon propre haschmap)?

update : il semble qu'il n'y ait pas de toute façon pour éviter d'avoir l'objet Int la totring de JCOMBOBOX Wift () si je veux une fonctionnalité personnalisée..Je souhait qu'il y ait un moyen de (1) spécifier Les objets à charger dans le JCOMBOBOX et (2) spécifier comment ces objets doivent apparaître dans l'interface graphique.


0 commentaires

3 Réponses :


0
votes

Si vous souhaitez remplacer la méthode TOSTRING () , vous pouvez simplement créer une classe de décorateur qui implémente mappe et utilise un hashmap pour implémenté Les méthodes nécessaires et donnent votre propre implémentation de Tostring () .


1 commentaires

oui, j'espérais vraiment éviter cela si possible..mais merci pour la suggestion



0
votes

Si vous avez un hashmap, vous voudrez faire quelque chose comme: xxx

Bien sûr, vous devez remplacer la méthode tostring de l'objet que vous avez dans le hashmap


1 commentaires

Sauf si j'ai mal compris l'OP, ce n'est pas la situation. Il a de nouveau JCOMBOBOX (Somécollection ); plutôt que de vouloir simplement vouloir les valeurs d'un seul hashmap.



11
votes

(2) Spécifiez comment ces objets doivent apparaissent dans l'interface graphique.

Vous pouvez ajouter n'importe quel objet au modèle, puis créer un rendu personnalisé pour afficher l'objet de votre choix. Exemple simple qui montre l'approche de l'approche de Tostring () et de l'approche de rendu personnalisée: xxx


0 commentaires