ResultSet + Array de JLabels

Olá, o código abaixo só insere o primeiro resultado do resultset no JLabel…

Por que não está inserindo as outras linhas? Já testei e os dados estão no rs… Só a iteração que não está indo até o final. Podem me ajudar?

         label = new ArrayList<JLabel>();
        String[] nomes = {"Seus Dados:", "Nome:", "Sobrenome:", "Usuário:",
                                "Data de Nascimento:", "Telefone:", "Email:"};
        
        campo = new ArrayList<JLabel>();
        
        for(int i=0; i<nomes.length;i++){
            label.add(i, new JLabel(nomes[i]));
            label.get(i).setForeground(vinho);
            campo.add(i, new JLabel());
            form.add(label.get(i));
            form.add(campo.get(i), "wrap 15");
        }
              /*Código abaixo só funciona no 1o JLabel, se trocar o index da coluna consigo um valor diferente, ou seja, o valor está no rs */
        try {
            int i = 0;
            while(rs.next()){
                //TODO só esta passando o 1o valor
                  //pular 1o label (titulo)
                campo.get(i+1).setText(rs.getString(i+1));        
               i++;
            }            
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

O método getString() tem duas assinaturas. Uma que recebe o nome da coluna como string e outra que recebe o index da coluna como inteiro.
Da forma que você fez, a cada iteração do while o método getString() recebe o valor de uma coluna diferente.
Sugiro que você escreva o nome da coluna que quer como string.

Ex:

select nome from tabelaDeFuncionarios;

int i = 0;
        while(rs.next()){
            //TODO só esta passando o 1o valor
              //pular 1o label (titulo)
            campo.get(i+1).setText(rs.getString("nome"));        
           i++;
        }
2 curtidas

Da forma que você fez, a cada iteração do while o método getString() recebe o valor de uma coluna diferente.

Era isso que eu queria, cada coluna só retorna uma linha, porque é um login. Queria pegar uma linha de cada coluna. Coluna nome, sobrenome, etc…

Daí tentei passar um array com os nomes das colunas, mas não funcionou. Entendi alguma coisa muito errado

Daí excluí todo e voltei com o primeiro painel que fiz, sem arrays. Está funcionando agora, mas tem muito código repetido

Obrigada pela ajuda

1 curtida