Ao selecionar um UF de um combo box a interface deve mostrar no combo box de cidade todas as cidades referentes a esse UF. No meu caso quando eu seleciono um UF pela primeira vez ele mostra todas as cidades, porém ao selecionar outro UF ele apenas adiciona novas cidades mantendo os valores do UF anterior.
Action do UF
private void tfUfActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
ClientesDAO repositorio = new ClientesDAO();
String estado = tfUf.getSelectedItem().toString();
ArrayList<Cidade> estados = repositorio.listarCidadesPorUF(estado);
for (Cidade estado1 : estados) {
tfCidades.addItem(estado1.getCidade());
}
}
Método de Busca por UF
public ArrayList<Cidade> listarCidadesPorUF(String estado) {
try {
String sql = "select * from cidades where Estado = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, estado);
ps.execute();
ResultSet resultado = ps.getResultSet();
ArrayList<Cidade> cidades = new ArrayList<>();
while (resultado.next()) {
Cidade estado1 = new Cidade();
estado1.setCidade(resultado.getString("cidade"));
estado1.setEstado(resultado.getString("estado"));
cidades.add(estado1);
}
return cidades;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Excpetion -> " + e);
return null;
}
}