[RESOLVIDO] Duvidas ComboBox de result set

5 respostas
X

Boa noite galera,

Sou iniciante ainda em java e estou com uma dúvida…
Minha ideia é carregar em um combo box apenas os estados cadastrados no sistema. Pois a partir desta seleção vou limitar as cidades conforme o estado selecionado.
A principio minha ideia funcionou em partes, não sei se é certo fazer assim, maas… foi o jeito que consegui sozinho.
Então fiz um teste eu deu pau, o que acontece é que estou pegando um sequence do banco e inserindo como index do combo box para o estado. Só que ai mora o perigo, pois se esta sequencia foi quebrada (deletar um estado), já eraaa… vai dar erro pois esta esperando um index e estou informando outro.

Minha ideia era usar o index como padrão para o where da seleção das cidades… mas acho que não vai dar, alguém tem alguma ideia?

Método para carregar o estado:

public ArrayList CarregarEstados(){ ArrayList<String> Estados = new ArrayList(); ResultSet rs = con.query("SELECT E.COD_ESTADO, E.UF_ESTADO FROM I3_ESTADOS E ORDER BY COD_ESTADO"); Estados.add(0, "SELECIONE O ESTADO"); try { while(rs.next()){ Estados.add(rs.getInt("cod_estado"), rs.getString("uf_estado")); } } catch (SQLException ex) { Logger.getLogger(Cidades.class.getName()).log(Level.SEVERE, null, ex); } return Estados; }

Instância do combo box:

comboboxEstado = new javax.swing.JComboBox(Cidades.getInstancia().CarregarEstados().toArray());

5 Respostas

X

tava pensando aqui…

se usar getSelectedItem() poderia limitar pelo campo de uf do estado, o que em tese daria certo…

será que é isso mesmo?

X

Consegui…
Tirei do método add do combo box o index, passei apenas a string e ele se “encarregou” de criar os index pra mim (não havia visto que o método aceita apenas a string).

Bom conforme o usuario seleciona o estado o combo box de cidades é alterado…

Ficou assim.

Método do Evento do combo box estado:

private void comboboxEstadoItemStateChanged(java.awt.event.ItemEvent evt) { comboboxCidade.removeAllItems(); DefaultComboBoxModel model = new DefaultComboBoxModel(Cidades.getInstancia().CarregarCidades(comboboxEstado.getSelectedItem().toString()).toArray()); comboboxCidade.setModel(model); comboboxCidade.setEnabled(true); }

Método carregar cidade:

public ArrayList CarregarCidades(String Estado){ Cidades.estado = Estado.toString(); ArrayList<String> Cidades = new ArrayList(); ResultSet rs = con.query("SELECT C.COD_CIDADE, C.DES_CIDADE FROM I3_CIDADES C, I3_ESTADOS E WHERE C.COD_ESTADO = E.COD_ESTADO AND E.UF_ESTADO = '" + Estado + "'"); Cidades.add("..."); try { while(rs.next()){ Cidades.add(rs.getString("des_cidade")); } } catch (SQLException ex) { Logger.getLogger(Cidades.class.getName()).log(Level.SEVERE, null, ex); } return Cidades; }

Era isso, agora vou fazer o CEP, e já eras…

X

editado: [RESOLVIDO]…

JavaDreams

Legal
você mesmo abriu o post, deu suporte, resolveu e fechou.

Achei engraçado a coincidência.

Abraços e parabéns pela tua garra.

A

Xperito estou tentando utilizar seu metodo Carregar cidades porem estou em duvida se esse campo estado é da classe !

tenho uma classe teste com as variaveis id,cidade, estado. (mesmo coisa no banco).

Como faço utilizando seu metodo!

Criado 21 de agosto de 2013
Ultima resposta 19 de nov. de 2013
Respostas 5
Participantes 3