Boa tarde,
Pessoal tenho 2 comboBox (ESTADO / CIDADE). Seleciono o Estado e me mostra todas as cidades ativas (ate ai tudo funcionando blz), o problema e:
1 - Seleciono: Minas Gerais (Aparece todas as cidades de minas)
2 - Seleciono: São Paulo (Aparece todas as cidades de sp)
3 - Seleciono: Minas Gerais NOVAMENTE (Aparece todas as cidades de minas e sp).
Tentei resolver isso inserindo o combo.removeAllItems();
Ai no passo 3 (citado acima) o combobox cidade so retorna o primeiro registro encontrado no Banco (MYSQL). Segue meu codigo se alguém puder me ajudar fico grato :lol:
public PesBairros() {
initComponents();
criaJtable();
jScrollPane1.setViewportView(tabela);
preencheComboEstado(comUF);
AutoCompletion.enable(comCidades);
AutoCompletion.enable(comUF);
}
private void preencheComboEstado(JComboBox combo) {
String SQLEstado = "select `EST_COD`, `EST_UF`, `EST_DESCRICAO` from `T_ESTADO` "
+ "order by `EST_DESCRICAO` ASC";
if (conn.executeSQL(SQLEstado)) {
try {
do {
est_codigo = conn.resultset.getInt("EST_COD");
est_uf = conn.resultset.getString("EST_UF");
est_descricao = conn.resultset.getString("EST_DESCRICAO");
combo.addItem(new Estados(est_codigo, est_descricao, est_uf));
combo.setSelectedIndex(-1);
} while (conn.resultset.next());
combo.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent evt) {
if (evt.getStateChange() == ItemEvent.SELECTED) {
Estados estado = (Estados) comUF.getSelectedItem();
est_codigo = estado.getCodigo();
labCidade.setEnabled(true);
comCidades.setEnabled(true);
comCidades.removeAllItems();
preencheComboCidade(comCidades, est_codigo);
}
}
});
} catch (SQLException erroSQL) {
JOptionPane.showMessageDialog(null, erroSQL);
}
}
}
private void preencheComboCidade(JComboBox combo, int estado) {
String SQLCidade = "select `CID_COD`, `CID_DESCRICAO`, `EST_COD` from `T_CIDADE` "
+ "where `EST_COD` = " + estado + " and `CID_ATIVO` = true "
+ "order by CID_DESCRICAO ASC";
if (conn.executeSQL(SQLCidade)) {
try {
do {
cid_descricao = conn.resultset.getString("CID_DESCRICAO");
cid_codigo = conn.resultset.getInt("CID_COD");
combo.addItem(new Cidades(estado, cid_codigo, cid_descricao));
combo.setSelectedIndex(-1);
} while (conn.resultset.next());
combo.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent evt) {
if (evt.getStateChange() == ItemEvent.SELECTED) {
Cidades cidade = (Cidades) comCidades.getSelectedItem();
cid_codigo = cidade.getCodigoCidade();
cid_descricao = cidade.getDescricao();
labBairro.setEnabled(true);
txtPesquisa.setEnabled(true);
butPesquisar.setEnabled(true);
pesquisar();
}
}
});
} catch (SQLException erroSQL) {
JOptionPane.showMessageDialog(null, erroSQL);
}
}
}