I have a JComboBox where the items are the results of a query. The combo shows all the categories names taken from a query, right? Ok, it works. Now I need to give each item a value, which would be the ID of the product.
This is what I've got so far:
final JComboBox proveedorCombo = new JComboBox();
contentPanel.add(proveedorCombo);
ProveedorDAO dao = new ProveedorDAO();
List<Proveedor> proveedor = dao.getAll();
Object[][] elementos = new Object[proveedor.size()][2];
for (int i = 0; i < proveedor.size(); i++) {
Proveedor p = proveedor.get(i);
elementos[i][0] = p.getId();
elementos[i][1] = p.getNombre();
proveedorCombo.addItem(elementos[i][1]);
}
As you can see in the code, the "label" of each item is the name of it. Now, how can I set each item its ID so I can manipulate after?
Thanks and try to answer easily, I'm having the hardest time trying to get this Java thing! Ha!
JComboBox
by default uses a renderer wich usestoString()
method to display object data. So you can make your own render class to customize the view.This is the way it was designed for.
Another hacky approach is overriding
toString()
fromProveedor
or making your adapter class that uses yourtoString()
but this solution is not much flexible as the other one.In the combobox if you want to populate from zero.
Or if you have previous data and you want to maintain.