Verwendung des Map-Elements als Text einer JComboBox

8

Ich beziehe eine JComboBox (mit addItem() ) mit allen Elementen einer Sammlung. Jedes Element in der Sammlung ist ein HashMap (also eine ComboBox von Hashmaps ..).

Meine Frage ist - Da ich jedes Element als HashMap benötige, wie setze ich den Text in der Combobox auf der GUI auf apear? Es muss der Wert eines bestimmten Schlüssels in der Karte sein. Normalerweise, wenn ich eine Combobox mit meinem eigenen Typ bevölkere, würde ich einfach die toString() -Methode übersteuern ... aber ich bin nicht sicher, wie ich das erreichen kann, da ich eine Java HashMap verwende.

Irgendwelche Ideen (wenn möglich, ohne meine eigene HashMap zu implementieren)?

Update : Es scheint, als ob es nicht sowieso zu vermeiden, dass das Objekt in der JComboBox toString () overded, wenn ich benutzerdefinierte Funktionalität möchte .. Ich wünschte, es gab eine Möglichkeit, (1) anzugeben die Objekte, die in die JComboBox geladen werden sollen und (2) wie diese Objekte in der GUI erscheinen sollen.

    
llm 11.05.2010, 17:12
quelle

3 Antworten

9
  

(2) Geben Sie an, wie diese Objekte aussehen sollen   erscheinen in der GUI.

Sie können ein beliebiges Objekt zum Modell hinzufügen und dann einen benutzerdefinierten Renderer erstellen, um das Objekt beliebig anzuzeigen. Einfaches Beispiel, das den toString () - Ansatz und den benutzerdefinierten Renderer-Ansatz zeigt:

%Vor%     
camickr 11.05.2010, 17:49
quelle
0

Wenn du eine hashmap hast, solltest du etwas tun wie:

%Vor%

Natürlich müssen Sie die Methode toString des Objekts, das Sie in HashMap

haben, überschreiben     
Cristian 11.05.2010 17:18
quelle
0

Wenn Sie die toString() -Methode überschreiben möchten, können Sie einfach eine Decorator-Klasse erstellen, die Map implementiert und eine HashMap verwendet, um die benötigten Methoden zu implementieren und Ihre eigene Implementierung von toString() zu geben.

    
Andrew Hubbs 11.05.2010 17:16
quelle

Tags und Links