Na mesma tabela tem os campos estado e cidade.
comEstado, comCidade.
ao selecionar o Estado aparecer as cidades correspondestes!
Como faço isso?
Na mesma tabela tem os campos estado e cidade.
comEstado, comCidade.
ao selecionar o Estado aparecer as cidades correspondestes!
Como faço isso?
JSP? Swing? Linha de comando(lol)
Enfim, não importando qual seja, a solução é basicamente a mesma:
1-criar os dois combobox: Estado e Cidade.
2-Adicionar um evento no combobox Estado que controle quando o valor for alterado, você preenche o combobox Cidade.
Swing!
Ja criei os combobox, tava pensando criar os metodos verEstados e verCidades!
cara eu não sei como iniciar!
peguei esse exemplo mais não sei como utiliza-lo no meu caso!
public void VERestado(){
try{
st = con.createStatement();
String SQL = "select estado from teste1;";
st.execute(SQL);
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
}
Obrigado ErickRAR
Resumidamente:
você tem um dao de Estado:
[code]public Lis listarEstados(){
//forma que você pega os estados do banco de dados
return listaEstados;
}[/code]
Agora você preenche o combobox com essa lista
for(String est: listaEstados) // Isso supondo que sua lista de estados é String, se for uma classe, coloque a classe e reescreva o toString dela
comboboxEstado.add(est)
Agora veja qual é o evento que controla quando o valor muda e adicione no combobox. Não sei qual é de cabeça hehe
Nesse evento, você terá que criar um método para controla-lo, ele será algo do tipo
public void eventOnChange(NomeDoEvento e){
//pega o valor selecinado e passa para uma string
List<String> cidades = seuDao.pesquisarPorEstado(estadoSelecionado) //esse seu método deve ter uma query para pesquisar a cidade de acordo com o estado
for(String cid: cidades) // Isso supondo que sua lista de cidades é String, se for uma classe, coloque a classe e reescreva o toString dela
comboboxCidade.add(cid)
}
Fiz tudo sendo string pra ficar bem simples, o resto depende de como esta modelado suas classes.
Ps: vai aparecer um bug que, toda hora que tu muda de Estado, vai acrescentar mais cidades, tem que limpar o combo antes.
vou implementar isso!
Obrigado ErickRAR!
Qual o nome do seu combobox?
Colocando Estados:
con_cad_cliente = new conexao();
con_cad_cliente.conecta();
String sql = "select estado from teste1";
con_cad_cliente.executeSQL(sql);
jcb_newcli_estado.removeAllItems();
try
{
while (con_cad_cliente.resultset.next()) //enquanto tiver dados
jcb_newcli_estado.addItem(con_cad_cliente.resultset.getString("estado"));
}catch (SQLException erro){JOptionPane.showMessageDialog(null,"Nenhuma informação de Estado localizada - Erro: \n"+erro);}}
Colocando as cidades
public void cad_cli_coloca_cidades(){
con_cad_cliente_cidade = new conexao();
con_cad_cliente_cidade.conecta();
String sql = "select estado,cidade from teste2 where estado='"+seucombobox.getSelectedItem()+"'";
con_cad_cliente_cidade.executeSQL(sql);
jcb_newcli_cidades.removeAllItems(); // vc remove tudo do combobox
try
{
con_cad_cliente_cidade.resultset.first();
while (con_cad_cliente_cidade.resultset.next()) //enquanto tiver dados
jcb_newcli_cidades.addItem(con_cad_cliente_cidade.resultset.getString("cidade")); //adiciona no combobox
}catch (SQLException erro){JOptionPane.showMessageDialog(null,"Nenhuma informação de Estado localizada - Erro: \n"+erro);}}
MarcosPaulo esses são métodos que ficam no Dao ou coloco nas ações dos botões?
Desculpe por não saber tanto!
Obrigado por ajudar!
Se possui informações de conexão com banco de dados fica no DAO…
O combobox fica na camada VIEW onde é a interação grafica com o usuario