• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mejaime

Jtable query com várias linhas

2 mensagens neste tópico

Boa noite,

Tenho andado a brigar com as linhas que não aparecem na jtable.

O problema é assim, a query que estou a fazer devolve pode devolver mais que uma linha. No caso de devolver mais que uma linha  na jtable é apresentado o numero de linhas que a query devolve mais os dados das linhas são todos iguais.

Imagem que mostra os dois registos repetidos (A query devolve dois registos diferente mas a jtable insere o mesmo duas vezes)

32075215.jpg

Deixo também o método que que preenche a jtable.

public JTable preenche(javax.swing.JTable tabelaBD) throws SQLException {

    Integer x;
     this.campos.add("id_aplicacao");
     this.campos.add("Banco");
     this.campos.add("Capital");
     this.campos.add("Data_Inicio");
     this.campos.add("Data_Fim");
     this.campos.add("Taxa_Juro");
     this.campos.add("N_Dias");
     this.campos.add("Imposto");
     this.campos.add("Rendimento_liquido");
     this.tamanho.add(10);
     this.tamanho.add(90);
     this.tamanho.add(90);
     this.tamanho.add(10);
     this.tamanho.add(10);
     this.tamanho.add(90);
     this.tamanho.add(90);
     this.tamanho.add(10);
     this.tamanho.add(10);

      this.connect();

      Statement stm = conn.createStatement();
      ResultSet res = stm.executeQuery("SELECT id_aplicacao, banco, capital, data_inicio, data_fim, taxa_juro, n_dias, imposto, rendimento_liquido FROM t_aplicacao WHERE data_fim > sysdate");

        DefaultTableModel modelo = (DefaultTableModel)tabelaBD.getModel();
        modelo.setNumRows(0);
        modelo.setColumnCount(0);

        for (x=0; x<campos.size(); x++) {
              nomes.add(campos.get(x).toString());
        }

       for (x=0; x<campos.size(); x++) {
             modelo.addColumn(campos.get(x).toString());
         }

       for (x=0; x<tamanho.size(); x++) {
             tabelaBD.getColumnModel().getColumn(x).setPreferredWidth(Integer.parseInt(tamanho.get(x).toString()));
       }

       while (res.next()) {
                for (x=0; x<campos.size(); x++) {
                      valores.add(res.getString(campos.get(x).toString()));
                }
                
              modelo.addRow(valores);
              
      }
      
     return tabelaBD;

}

Alguém que me possa ajudar a ver o que está a faltar aqui.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá uma viste de olhos nos interfaces TableModel e TableColumnModel e nas classes que os implementam, pessoalmente acho que é a forma mais simples e flexível de construir um JTable.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora