jComboBox - Busca no Bco Dados e Pesquisa com a chave primaria - RESOLVIDO -Expert - COMENTEM

Agradeço primeiro aos amigos do Forum, pois me ajudaram muito nas varias dicas que procurei, sempre que alguem posta algo é rapidamente respondido. Sou programador VBasic 10anos e Cobol a 19 anos e estou mudando para o JAVA pretendo passar todos os meus programas para essa linguagem e umas das dificuldades foi o jComboBox e aqui vai o codigo, está funcionando corretamente, estou usando o JBuilder. Gostaria que os programadores experientes comentassem o codigo:

public class NomedaClasse extends JPanel {
private Integer chaveCid[]; // Cria a Array chave_cidade

private void jbInit() throws Exception {
    try {
        String query="SELECT * FROM CIDADE order by CIDADE";
        ResultSet result1=executaSQL.executeQuery(query);

        chaveCid = new Integer[124]; // Dimensiona a Array ou leia o    tamanho da tabela com SELECT COUNT
        int i=0;

        while(result1.next()) {

             int ch =  result1.getInt("chave_cidade");
             chaveCid[i]=new Integer(ch); // Grava as chaves na Array

             i=i+1;
             String Bairro=result1.getString("cidade"); 
             jComboBox1.addItem(Bairro); // Grava o Nome da Cidade no ComboBox
        }

}

// Quando clicar no Combo a posição e guardada em uma variavel
// E com essa posição acha-se o conteudo da Array que é chave desejada
// Ai é só disparar uma consulta SELECT e obter o resto dos registros

public void jComboBox1_actionPerformed(ActionEvent e) { 

      int chave= jComboBox1.getSelectedIndex();  // Recebe a posição
      int ch1=0;
      ch1=chaveCid[chave].intValue() ;    // Recebe o conteudo da Array
      JOptionPane.showMessageDialog(null,
      "Chave deste Registro é "+ ch1+" "+chave,
          "Atenção",JOptionPane.ERROR_MESSAGE);

}  
// ch1 mostra a chave_primaria e chave = mostra a posição da Array - Exemplo

// para conferir
}

Olá jcfcampos,

Não há nada de errado com o código se seu intuito é apenas prover um exemplo de uso isolado. No caso de uma aplicação mesmo, você deve usar um nível de abstração mais alto, especialmente para o Swing.

Você deve trabalhar com objetos como seu modelo, ao invés de usar Strings e arrays de Integers. Um framework de binding te possibilita isso, como o genesis. Verifique como popular um JComboBox com @DataProvider, por exemplo.