Como colocar dados de uma list no jTable usando um Table Model?

1 resposta
S

Eu estou tentando criar uma aplicação, que faz consulte no banco de dados e ao cricar no botão, a consulta apareça em um jTable.
Eu peguei um exemplo de um table model, mas eu não consigo fazer aparecer a consulta no meu jTable ao apertar o botão.
Oque eu devo colocar no jButton1ActionPerformed para mostrar a tabela?
Alguem poderia me ajudar a resolver esse problema?

public class Pessoa {    
    
    private String id;    
    private String nome;    
        
    
  public String getId() {    
        return id;    
    }    
    
    public void setId(String i) {    
        this.i = id;    
    }    
        
    public String getNome() {    
        return nome;    
    }    
    
    public void setNome(String nome) {    
        this.nome = nome;    
    }               
        
}
public class PessoaDAO {    
 public List<Pessoa> getLista(String Id) throws SQLException{    
           
    Connection conexao = ConectaBanco.getConexao();    
    String sql = "select * from pessoa where id=?";    
        
    PreparedStatement pstmt = conexao.prepareStatement(sql);;    
    pstmt.setString(1, Id);    
    ResultSet rs = pstmt.executeQuery();    
        
    List<Pessoa> ListaPessoa = new ArrayList<Pessoa>();    
        
    if(rs.next()){    
        Pessoa p = new Pessoa();    
        p.setId(rs.getString("id"));    
        p.setNome(rs.getString("nome"));    
           
    }       
      
    rs.close();    
    pstmt.close();    
    return ListaPessoa;    
     
    }    
    }
public class PessoaTableModel extends AbstractTableModel{
    private static final int COL_Id = 0;  
    private static final int COL_Nome = 1; 
    
     private List<Pessoa> valores;         
  
    //Esse é um construtor, que recebe a nossa lista de livros  
    public PessoaTableModel(List<Pessoa> valores) {  
          this.valores = new ArrayList<Pessoa>(valores);  
    } 
    
    @Override
    public int getRowCount() {  
        //Quantas linhas tem sua tabela? Uma para cada item da lista.  
        return valores.size();  
    }  
  
    @Override
    public int getColumnCount() {  
        //Quantas colunas tem a tabela? Nesse exemplo, só 2.  
        return 2;  
    } 
    
    @Override
    public String getColumnName(int column) {  
        //Qual é o nome das nossas colunas?  
        if (column == COL_Id) {
            return "Id";
        }  
        if (column == COL_Nome) {
            return "Nome";
        }  
        return ""; //Nunca deve ocorrer  
    }  
  
    @Override
    public Object getValueAt(int row, int column) {  
        //Precisamos retornar o valor da coluna column e da linha row.  
        Pessoa pessoa = valores.get(row);  
        if (column == COL_Id) {  
            return pessoa.getId();
        }  
        else if (column == COL_Nome) {
            return pessoa.getNome();
        } 
        return ""; //Nunca deve ocorrer  
    }  
    
    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {  
        Pessoa pessoa = valores.get(rowIndex);  
        //Vamos alterar o valor da coluna columnIndex na linha rowIndex com o valor aValue passado no parâmetro.  
        //Note que vc poderia alterar 2 campos ao invés de um só.  
        if (columnIndex== COL_Id) {  
            pessoa.setId(aValue.toString());
        }  
        else if (columnIndex== COL_Nome) {
            pessoa.setNome(aValue.toString());
        }  
    }  
  
    @Override
    public Class<?> getColumnClass(int columnIndex) {  
        //Qual a classe das nossas colunas? Como estamos exibindo texto, é string.  
        return String.class;  
    }  
      
    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {  
        //Indicamos se a célula da rowIndex e da columnIndex é editável. Nossa tabela toda é.  
        return true;  
    }  
     
    public Pessoa get(int row) {  
        return valores.get(row);  
    }

1 Resposta

michetti

Como sou iniciante não tenho certeza mas olhando o codigo parece que ta faltando alguma parte…
Pois alguns tutoriais de AbstractTableModel eu via o autor do tutorial usando o comando add, que incluia linhas na tabela, da uma olhada aqui…

Criado 24 de outubro de 2013
Ultima resposta 24 de out. de 2013
Respostas 1
Participantes 2