Zadejte hledaný výraz...

jComboBox Object + String

Jiří Čadek
verified
rating uzivatele
(12 hodnocení)
13. 3. 2011 21:40:47
Zdravím,
potřebuji do komponenty jComboBox narvat následující.
Vytvořím si Objekt a ten vložim do jComboBoxu
pak k nemu pristupuji pres vyber.getSelectedItem();
Tohle funguje, ale horsi je, ze uzivateli to v comboboxu vypisuje to, co ma ten objekt v toStringu, ja bych mu tam potreboval vypisovat text "Objekt 1, Objekt 2" atd. (Popripade ekvivalentní).
Jak přiřadím do comboboxu ke každému itemu referenci na Objekt + String který se má na tom indexu vypsat?
13. 3. 2011 21:40:47
https://webtrh.cz/diskuse/jcombobox-object-string/#reply618606
tom11111
verified
rating uzivatele
13. 3. 2011 23:49:33
Napadají mě dvě možnosti
1. složitější: naimplementovat vlastní ListCellRenderer. Příklad je třeba v tomto Sunovském (tedy nyní již Oraclovském) tutorialu:
http://download.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer
Výhodou je, že tak můžeš donutit JComboBox zobrazovat i obrázky. Nevýhodou je, že to musíš nastudovat
2. jednodušší, pokud stačí "textové" položky:
Object dřív, než ho vložíš do JComboBoxu "zabalíš" do wrapperu. Wrapperu pak přepíšeš metodu toString na cokoliv, co potřebuješ. Při přejímání vybrané položky z JComboBoxu dostaneš ten wrapper, z kterého si vyzvedneš původní object.
Například:
použití
Vytvořil jsem wrapper, kterému rovnou při new řeknu, co má v combu zobrazovat a jakou hodnotu ma obsahovat.
Při vybrání getSelectedItem si musím hodnotu z wrapperu vybalit (selectedItem.getValue())
13. 3. 2011 23:49:33
https://webtrh.cz/diskuse/jcombobox-object-string/#reply618605
Jiří Čadek
verified
rating uzivatele
(12 hodnocení)
14. 3. 2011 01:16:54
Díky, vyřešil jsem to nakonec tou obalovou třídou, původně jsem doufal, že bude nejaky elegantnejší řešení, ale co se dá dělat. Trochu horší je, že už ten objekt je obalený dvakrát.
14. 3. 2011 01:16:54
https://webtrh.cz/diskuse/jcombobox-object-string/#reply618604
Pro odpověď se přihlašte.
Přihlásit