Pessoal,
Depois de um dia e meio tentando resolver um problema sem sucesso, recorro a esse maravilhoso forum.
Pesquisei no forum, assuntos correlatos, mas também não consegui resolver meu problema.
Estou tentando fazer um comboBox com as informacoes do campos id e name.
Quero que o usuário visualize apenas o campo name, porém a informacao que é gravada no BD é o campo id.
Esta situação vai ocorrer em diversas ocasiões, como por exemplo, na tabela pedidos, ficam gravados
apenas o id do vendedor, o id da transportadora, etc.
Quando o campo id do vendedor, por exemplo, já está preenchido na tabela de pedidos, ao carregar o frame,
sempre é o primeiro registro da lista do combobox é que é exibido. Não consigo fazer com que o combobox
exiba o registro correspondente ao id que está registrado no BD.
Vejam meu código: (só coloquei as linhas principais):
OrderMestre orderMestre = new OrderMestre();
orderMestre.setTransports_id(rs.getInt(b++));
// povoa o combobox
ArrayList list = new ArrayList();
String sqlTrans = "select transports_id,transports_name from transports";
try {
rs = conn.executeQuery(sqlTrans);
} catch (Exception e) {
e.printStackTrace();
}
GetInfoCombo trans;
while (rs.next()) {
trans = new GetInfoCombo();
trans.setId(rs.getInt(1));
trans.setName(rs.getString(2));
list.add(trans);
}
No model tenho o seguinte código:
public void setSelectedItemLista(Object item) {
this.selectedItem = item;
index = list.indexOf(item);
if (comboBox != null) {
comboBox.setSelectedIndex(index);
comboBox.repaint();
}
this.fireChangeNotification();
}
public void setSelectedItem(Object item) {
this.selectedItem = item;
index = list.indexOf(item);
this.fireChangeNotification();
}
O que está errado?