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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top