2009-03-03 4 views
4

Ce que j'essaie de faire imiter une balise HTML Select. Je veux afficher le texte en tant qu'option mais quand choisi, j'utiliserais sa valeur.Y at-il un moyen de faire un JComboBox agir comme un HTML Select?

Par exemple, j'aurais une liste de noms de pays. Toutefois, lorsqu'un utilisateur sélectionne le Japon, je souhaite obtenir le code de paramètres régionaux pour ce pays. Ainsi, l'utilisateur voit qu'il a sélectionné le Japon, mais mon code aura "ja_JP" ou quelque chose comme ça. J'essaye d'éviter de stocker le nom de pays et le code de paramètres régionaux dans une HashMap ou quelque chose.

Répondre

8

Créez un objet Pays qui contient le nom d'affichage et le code du pays. Vous pouvez faire le rapide et sale et remplacer toString pour afficher le nom d'affichage, puis récupérer le code lorsque vous en avez besoin lorsque l'utilisateur sélectionne quelque chose.

public class Country 
{ 
    String display; 
    String code; 

    @Override 
    public String toString() 
    { 
     return display; 
    } 

    public String getCode() 
    { 
     return code; 
    } 
} 

Expulsé le constructeur car je suis paresseux. Si vous n'êtes pas satisfait de l'option toString, vous pouvez également créer votre propre moteur de rendu qui traite les objets Country et utiliser l'affichage à la place via un nouveau getter.

1

EDIT: J'ai besoin de taper plus vite.

Je crée généralement un objet personnalisé pour contenir la "valeur" et remplacer toString() pour retourner ce que le JComboBox devrait montrer. Alternativement, vous pouvez écrire votre propre moteur de rendu cellulaire.

+1

Personne ne me tape! :) – willcodejavaforfood

Questions connexes