Pessoal,
Estou com um problema que não estou conseguindo resolver. Tenho vários JComboBox que fazem preenchimento em cascata, ao selecionar o um ítem da lista de um JComboBox ele preenche o de baixo.
Esses são os Eventos:
private void cbEstadoActionPerformed(java.awt.event.ActionEvent evt) {
preencheComboCidade();
}
private void cbCidadeActionPerformed(java.awt.event.ActionEvent evt) {
preencheComboBairro();
}
E essas são as ações:
public void preencheComboEstado(){
cbEstado.removeAllItems();
CidadeDao cidadeDao = new CidadeDao();
List lista = cidadeDao.todasCidades();
for(Cidade cidade : lista){
cbEstado.addItem(cidade.getEstado());
}
}
public void preencheComboCidade(){
cbCidade.removeAllItems();
CidadeDao cidadeDao = new CidadeDao();
List <Cidade> lista = cidadeDao.cidadesPorEstado((String)cbEstado.getSelectedItem());
for(Cidade cidade : lista){
cbCidade.addItem(cidade);
}
}
public void preencheComboBairro(){
cbBairro.removeAllItems();
BairroDao bairroDao = new BairroDao();
Cidade cidade = (Cidade)cbCidade.getSelectedItem();
JOptionPane.showMessageDialog(null, "" + cidade.getId());
List <Bairro> lista = bairroDao.listarBairroPorCidade(cidade.getId());
for (Bairro bairro : lista){
cbBairro.addItem(bairro);
}
}
Só que quando seleciono um ítem no "cbEstado", ele preenche o cbCidade e ao preencher ele chama o evento ActionPerfomed desse combo, mas não é isso que eu queria, eu queria que só chamasse o ActionPerfomed desse como quando eu selecionasse um ítem. Alguém tem alguma idéia?
Obrigado.