Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Coleandro

Problema ao preencher jTable com resultado de consulta

Recommended Posts

Estou tendo problemas ao preencher uma tabela com o resultados de uma consulta.
A consulta tem por resultado uma tabela com duas colunas e eu estou tentando povoar uma jTable com duas colunas também. Na primeira coluna deverá ser listado os nomes dos níveis dos alunos e na coluna 2 as idades médias dos alunos do nível correspondente, tudo obtido através de um único SELECT.

Cheguei até o seguinte trecho de código:

 

private void montaTabela() {  
        alunos = new ArrayList<Aluno>();  
        DefaultTableModel tableModel = new DefaultTableModel();  
        tableModel.setColumnIdentifiers(new String[]{"Nivel", "Idade media"});  
  
        List<String> list = new ArrayList<String>();  
        list = new dao.Dao<Aluno>(Aluno.class).listQuestao8();  
  
        for (int i = 0; i < list.size() - 1; i++) {  
            tableModel.addRow(new Object[]{list.get(i), list.get(i + 1)});  
        }  
  
        jTable2.setModel(tableModel);  
}

Ele consegue povoar a tabela de maneira correta, mas não com os nomes dos níveis e médias, mas sim com a posição que esses dados ocupam na memória (eu acho). Fica mais ou menos assim:

 

iOCinX3.png

 

Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você passa o objeto para o JTable, ele escreve na tabela a sua classe e posição na memória.

 

Você tem duas opções:

1- Se tiver tempo, siga esse tutorial, pois ele ensina como implementar um Model de tabela que é melhor do que usar um DefaultTableModel. Ele também explica no início porque é melhor.

Link: http://devsv.wordpress.com/2012/07/08/como-implementar-um-tablemodel/

 

2- Senão, faça o seguinte:

Mude a linha 10 disso

tableModel.addRow(new Object[]{list.get(i), list.get(i + 1)});  

para isso

tableModel.addRow(new String[]{list.get(i), list.get(i + 1)});  

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.