Gibt es eine Möglichkeit, eine JComboBox wirkt wie ein HTML-Select zu machen?
Frage
Was ich versuche, einen HTML-Select-Tag zu tun imitieren. Ich möchte Text als Option angezeigt werden, aber wenn sie ausgewählt wird, würde ich seinen Wert verwenden.
Zum Beispiel würde ich eine Liste der Ländernamen hat. Wenn jedoch ein Benutzer Japan wählt, möchte ich für dieses Land das Locale-Code erhalten. So sieht der Benutzer, dass sie ausgewählt Japan, aber mein Code „ja_JP“ oder etwas bekommen.
Ich versuche, das Land Namen und Locale-Code in einer HashMap oder etwas zu vermeiden, zu speichern.
Lösung
Erstellen Sie ein Land Objekt, das den Anzeigenamen und den Ländercode enthält. Sie konnten die schnell und schmutzig und überschreiben toString tun den Anzeigenamen zu zeigen, und dann einfach den Code abrufen, wenn Sie es brauchen, wenn der Benutzer etwas auswählt.
public class Country
{
String display;
String code;
@Override
public String toString()
{
return display;
}
public String getCode()
{
return code;
}
}
den Konstruktor Ausgelassen wie ich faul bin. Wenn Sie nicht zufrieden mit zwingenden toString sind, könnten Sie auch Ihre eigenen Renderer erstellen, die mit Land Objekten behandelt und die Anzeige stattdessen durch einen neuen Getter verwendet werden.
Andere Tipps
EDIT: Ich muss schneller eingeben
.ich in der Regel ein benutzerdefiniertes Objekt erstellen den „Wert“ und überschreiben toString () zu halten zurückzukehren, was die JComboBox zeigen sollte. Alternativ können Sie Ihre eigenen CellRenderers schreiben.