Imprimir ArrayList

7 respostas
guirodr

Então, eu tenho que imprimir uma ArrayList em um JTable e não to conseguindo fazer, to usando DefaultTablemodel porque não sei usar outro modelo, ja li sobre outros mas não tenho capacidade pra usa-los. Quando eu imprimo o ArrayList, que pega os dados salvos no banco SQL vem um código em vez do que eu coloquei, exemplo: Eu coloco Maria e o ArrayList imprime modelo.Livro@139eeda, o que fazer? O Array ta imprimindo no printLn porque eu não consigo colocar na JTable. Alguém me ajuda?

7 Respostas

Scoobydoo

Você tem que colocar a posição do ArrayList que voce quer imprimir…
Exemplo…

System.out.println(maria.get(posicao));

Exemplo de como colocar um array dentro de uma jTable

List<ClentesTO> lista = dao.consultarMaria();  
int x = 0;  
            DefaultTableModel modelo = (DefaultTableModel) TUATABELA.getModel();  
            modelo.setNumRows(0);  
            while (x < lista.size()) {  
                 // Configura a Jtable para receber os dados.  
                TUATABELA.getColumnModel().getColumn(0).setPreferredWidth(190);  
                TUATABELA.getColumnModel().getColumn(1).setPreferredWidth(50);  
                TUATABELA.getColumnModel().getColumn(2).setPreferredWidth(50);  
                TUATABELA.getColumnModel().getColumn(3).setPreferredWidth(50);  
                Object colunas[] = {"Cliente", "Data", "Idade", "CPF"};  
              // popula o JTable.  
                modelo.addRow(new Object[]{lista.get(x).getNome_cliente(),lista.get(x).getCPF(),lista.get(x).getIdade(),lista.get(x).getCPF()});  
                x++;  
            }
guirodr

Mas o problema é que eu imprimo o ArrayList e vem uns códigos e não as coisas que tão realmente no lugar do banco aonde a Array ta pegando os dados.

Scoobydoo

Posta o código da tua classe, teu controlle e teu DAO

guirodr
A classe:
package persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import modelo.Livro;


public class PerLivro {
    public void gravar(Livro livro){
        String sql="insert into livros(Titulo,Autor,Editora,Genero,Isbn,Edicao,Tipo)values(?,?,?,?,?,?,?)";
        try{
            Connection conn=Conexao.getConexao();
            PreparedStatement pst=conn.prepareStatement(sql);
            pst.setString(1,livro.getTitulo());
            pst.setString(2, livro.getAutor());
            pst.setString(3, livro.getEditora());
            pst.setString(4, livro.getGenero());
            pst.setString(5, livro.getIsbn());
            pst.setInt(6, livro.getEdicao());
            pst.setString(7, livro.getTipo());
            pst.executeUpdate();
        }catch(Exception e){
            System.out.println("Erro ao gravar livro "+e.toString());
        }
        }
public ArrayList<Livro>listar(){
    String sql="select * from livros";
    try{
            Connection conn=Conexao.getConexao();
            PreparedStatement pst=conn.prepareStatement(sql);
            ResultSet rs=pst.executeQuery();
            ArrayList<Livro> livros= new ArrayList<Livro>();
            Livro livro;
            while(rs.next()){
                livro=new Livro();
                livro.setTitulo(rs.getString(1));
                livro.setAutor(rs.getString(2));
                livro.setEditora(rs.getString(3));
                livro.setGenero(rs.getString(4));
                livro.setIsbn(rs.getString(5));
                livro.setEdicao(rs.getInt(6));
                livro.setTipo(rs.getString(7));
                livros.add(livro);
                

            }

                return livros;
    }catch(Exception e){

      System.out.println("Erro ao gravar livro "+e.toString());
      return null;
    }
        }
O banco
create database biblioteca --cria banco de dados
go
use biblioteca --usa o banco de dados
go
create table livros( --cria a tabela e atributos
	Titulo varchar(60)not null,
	Autor varchar(60), 
	Editora varchar(60), 
	Gênero varchar(60), 
	Isbn varchar(20), 
	Edição int,
	Tipo varchar(20)) 
go
select *
from livros
ViniGodoy

Ao invés de perder tempo entendendo como fazer o Default funcionar direito, perca tempo aprendendo a não usar o Default. Você tem capacidade de usar outros modelos sim, pois é bem mais fácil que usar o Default. Só exige um pouquinho de estudo.

Nos links da minha assinatura tem exemplos, inclusive usando um ArrayList de livros.

Insistir no Default vai te custar muito caro.

guirodr

Já vi que eu vou ter que usar um modelo diferente do Default mesmo, triste vida. Obrigado mesmo assim.

guirodr

Mas da pra usar esse DafaultTableModel em uma tela construida pelo construtor de tela?

Criado 23 de março de 2011
Ultima resposta 24 de mar. de 2011
Respostas 7
Participantes 3