Eu tenho duas ComboBox e quando um seleciona o código do fornecedor na outra ComboBox é setado o fornecedor automaticamente relacionado à aquele código. Fiz isso mais não está muito legal. Eu quero que quando eu abro a ComboBox e vou passando pelos códigos automaticamente a outra ComboBox vai mostrando os fornecedores relacionadoas à estes códigos.
Do jeito que fiz até agora.
jComboBox_Cod_Fornecedor.setEditable(true);
jComboBox_Fornecedor.setEditable(true);
try{
if(uma_vez_cod_for==0){//esta variável evita que apareça dados repetidos na jcomboBox.
Comandos_DAO cmd = new Comandos_DAO();
List<Fornecedor> listaf = (List<Fornecedor>) cmd.adicionar_itens_combox_cod_fornecedor();
Iterator<Fornecedor> it = listaf.iterator();
while(it.hasNext()){
Fornecedor e = it.next();
int codigo_fornecedor = e.getCodigo_fornecedor();
jComboBox_Cod_Fornecedor.addItem(codigo_fornecedor);
}
}
uma_vez_cod_for=1;
//quando usuario escolhe um código de fornecedor automaticamente aparece na combobox o nome da empresa ligada a este código.
Object combo_codigo_fornecedor = jComboBox_Cod_Fornecedor.getSelectedItem();
Fornecedor f = new Fornecedor();
f.setCodigo_fornecedor2(combo_codigo_fornecedor);
Comandos_DAO cmd2 = new Comandos_DAO();
Object combo_emp_for = cmd2.volte_empresa(f);
jComboBox_Fornecedor.setSelectedItem(combo_emp_for);
//System.out.println(combo_emp_for);
}//TRY
catch (Exception e){
System.out.println(e.getMessage());
}
jComboBox_Cod_Fornecedor.setEditable(false);
jComboBox_Fornecedor.setEditable(false);
public List<Fornecedor> adicionar_itens_combox_cod_fornecedor() throws Exception{
sql = "select codigo_fornecedor from fornecedor";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
int valor = rs.getInt("codigo_fornecedor");
Fornecedor c = new Fornecedor();
c.setCodigo_fornecedor(valor);
jtablefornecedor.add(c);
}
ps.close();
con.close();
return jtablefornecedor;
}
public Object volte_empresa(Fornecedor f)throws Exception{
sql = "select empresa from fornecedor where codigo_fornecedor = ? ";
PreparedStatement ps = con.prepareStatement(sql);
ps.setObject(1,f.getCodigo_fornecedor2());
ResultSet rs = ps.executeQuery();
while(rs.next()){
empresa2 = rs.getString("empresa");
}
return empresa2;
}
Se alguém estiver alguma idéia melhor aí me dá uma luz. Valeu.