Coleandro 0 Denunciar post Postado Março 16, 2014 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: Desde já obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
tockie 1 Denunciar post Postado Março 19, 2014 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