JComboBox adatainak megjelenítése és a data binding
Ha valaki adatbázis alkalmazást készít java-ban, alapvet?, hogy a data bindinget fogja használni. Ha egy jcombobox-ra adatokat bindelünk, pl egy listát, amit el?z?leg feltöltöttünk egy query-vel, akkor a megjelenítéssel akadnak problémák.
A bindelés után következ?t kapjuk:

Hát ez nem éppen az amit látni szeretnénk, mivel nem túl informatív. A következ? képpen tudjuk orvosolni a problémát.
Módosítani kell a jcomboBox getListCellRendererComponent metódusát a következ? képpen:
jComboBox2.setRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected,
boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index,
isSelected,cellHasFocus);
if (value instanceof <Entitás bean>) {
<Entitás bean> mec = (<Entitás bean>)value;
setText(mec.<getter metódus>);
}
return this;
}
});
A kód egy kicsit magyarázatra szorul.
Az <Entitás bean> helyére kell behelyettesíteni annak az osztálynak a nevét amire bindeltük a comboboxunkat. A <getter metódus> pedig ennek az osztálynak – entitás bean-nek- egy getter metódusa, ami majd visszaadja azt az adatot -stringet – amit szeretnénk, hogy megjelenjen a combobox soraiban.
Netbeans-ben a következ?képpen lehet ezt a felülírást megoldani.
Jobb klikk a combobox-ra -> “customize code” menüpont kiválasztása -> ide írhatjuk a kódot

Ha kész, lefordítva máris szenbet?n? a változás. Az el?bbi helyett valami ilyesmit látunk:

Comments:
You must be logged in to post a comment.