Uma dúvida de inciante

Eu fui ver a video aula do Marcelo Canedo sobre persistence e me ocorreu a seguinte dúvida:

Ele cria um tablemodel na aplicação de exemplo(até ai tudo bem), mas os cabeçalhos da Jtable aparecem como A,B,C e D respectivamente, se eu quiser alterar esses valores, como proceder para isso?

Eis meus códigos

A criação da JTable com o tableModel mostrado na video aula, via netbeans:

tarefaTabela.setModel(new lib.gui.TarefaTabela());
        tarefaTabela.getTableHeader().setReorderingAllowed(false);
        jScrollPane1.setViewportView(tarefaTabela);

A classe TarefaTabela:

package lib.gui;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import lib.database.ListaTarefa;

/**
 *
 * @author fabio
 */
public class TarefaTabela extends AbstractTableModel{   

    private List listaIds;
    private ArrayList<ListaTarefa> lista = new ArrayList();

    public TarefaTabela(){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("ListaTarefaPU");
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();

        listaIds = em.createQuery("SELECT t.id FROM ListaTarefa t").getResultList();

        for (Iterator<String> it = listaIds.iterator(); it.hasNext();) {
            String elem = it.next();
            lista.add((ListaTarefa) em.createNamedQuery("ListaTarefa.findById").setParameter("id", elem).getSingleResult());
        }

        em.close();
    }

    public int getRowCount() {
        return lista.size();
    }

    public int getColumnCount() {
        return 4;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        if (columnIndex == 0){
            return lista.get(rowIndex).getId();
        } else if (columnIndex == 1) {
            return lista.get(rowIndex).getTitulo();
        } else if (columnIndex == 2) {
            return lista.get(rowIndex).getResponsavel();
        } else if (columnIndex == 3) {
            return lista.get(rowIndex).getDecricao();
        }
        return null;
    }

    public void persist(Object object) {


    }

}

Pra quem ta começando como eu, essa video aula foi uma benção, facilita muito na criação de aplicações, muito rápido.

Se alguém puder me indicar uma resposta sobre como alterar esses valores dos cabeçalhos da JTable, ficarei grato.

fabiomattes2007,

Cria um array de Strings que armazenará os nomes que serão exibidos no cabeçalho de cada coluna e passa como parametro no construtor do seu model (antes vc cria uma atributo do mesmo tipo no seu AbstracttableModel):

String [] cabecalhos = {"id","Titulo","Reponsavel","Descricao"}; tarefaTabela.setModel(new lib.gui.TarefaTabela(cabecalho)) //etc ....;

Implementa o método getColumnName(int columnIndex) que retorna um item do array de cabeçahos de acordo com a coluna que será exibida. Tipo:

public String getColumnName(int col ) { return arrayCabecalho[col]); }
Qualquer coisa dá uma olhada : http://download.oracle.com/javase/tutorial/uiswing/components/table.html

[quote=luiz_renato]fabiomattes2007,

Cria um array de Strings que armazenará os nomes que serão exibidos no cabeçalho de cada coluna e passa como parametro no construtor do seu model (antes vc cria uma atributo do mesmo tipo no seu AbstracttableModel):

String [] cabecalhos = {"id","Titulo","Reponsavel","Descricao"}; tarefaTabela.setModel(new lib.gui.TarefaTabela(cabecalho)) //etc ....;

Implementa o método getColumnName(int columnIndex) que retorna um item do array de cabeçahos de acordo com a coluna que será exibida. Tipo:

public String getColumnName(int col ) { return arrayCabecalho[col]); }
Qualquer coisa dá uma olhada : http://download.oracle.com/javase/tutorial/uiswing/components/table.html[/quote]

Tá mas eu devo fazer isso na criação do Jtable ou no AbstractModel

Do Abstractmodel .

Hehehe, consegui seguindo o link que vc me passou.

Valeu, vo dexa aqui o código.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lib.gui;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.table.AbstractTableModel;
import lib.database.ListaTarefa;

/**
 *
 * @author fabio
 */
public class TarefaTabela extends AbstractTableModel{
    String colunas[] = new String[]{"Identificador", "Título", "Responsável", "Descrição"};

   // Seto os nomes dos cabeçalhos bem aqui
    @Override
    public String getColumnName(int col) {
        return colunas[col];
    }

    private List listaIds;
    private ArrayList<ListaTarefa> lista = new ArrayList();

    public TarefaTabela(){

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("ListaTarefaPU");
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();

        listaIds = em.createQuery("SELECT t.id FROM ListaTarefa t").getResultList();

        for (Iterator<String> it = listaIds.iterator(); it.hasNext();) {
            String elem = it.next();
            lista.add((ListaTarefa) em.createNamedQuery("ListaTarefa.findById").setParameter("id", elem).getSingleResult());
        }

        em.close();
        
    }


    public int getRowCount() {
        return lista.size();
    }

    public int getColumnCount() {
        return 4;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        if (columnIndex == 0){
            return lista.get(rowIndex).getId();
        } else if (columnIndex == 1) {
            return lista.get(rowIndex).getTitulo();
        } else if (columnIndex == 2) {
            return lista.get(rowIndex).getResponsavel();
        } else if (columnIndex == 3) {
            return lista.get(rowIndex).getDecricao();
        }
        return null;
    }

    public void persist(Object object) {


    }
}

Muito obrigado cara.