[RESOLVIDO] Duvidas ComboBox de result set

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());

tava pensando aqui…

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

será que é isso mesmo?

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…

editado: [RESOLVIDO]…

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.

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!