Bom dia amigos, estou com um pequeno problema que não consigo achar a solução.
Estou fazendo o meu proprio TableModel, porem quando ele joga os valores na tabela ele duplica o cabeçalho da tabela, ficando assim:
ITEM ID_USUARIO NM_PESSOA ID_PESSOA ID_PESSOAUSUARIO NR_CNPJCPF NR_RG DT_NASCIMENTO
ITEM ID_USUARIO NM_PESSOA ID_PESSOA ID_PESSOAUSUARIO NR_CNPJCPF NR_RG DT_NASCIMENTO
E logo abaixo os dados normais que a minha query carrega.
meu codigo:
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.swing.table.DefaultTableModel;
import POJO.PessoaUsuario;
public class TableModelPessoa extends DefaultTableModel {
private Map<Integer,PessoaUsuario> listaPessoas;
public String[] colunas;
public TableModelPessoa(Map<Integer,PessoaUsuario> lista){
this.listaPessoas = lista;
}
public int getColumnCount(){
return 8;
}
public String getColumnName(int coluna) {
switch(coluna){
case 0:return "ITEM";
case 1:return "ID_USUARIO";
case 2:return "NM_PESSOA";
case 3:return "ID_PESSOA";
case 4:return "ID_PESSOAUSUARIO";
case 5:return "NR_CNPJCPF";
case 6:return "NR_RG";
case 7:return "DT_NASCIMENTO";
default:return "";
}
}
public Object getValueAt(int linha, int coluna) {
if (linha == 0){
System.out.println("Entrada: "+linha+"º Coluna:"+coluna);
return getColumnName(coluna);
}
List<PessoaUsuario> vetor = new ArrayList<PessoaUsuario>();
vetor.addAll(listaPessoas.values());
System.out.println("Linha: "+linha+" Coluna: "+coluna+" OBJETO: "+listaPessoas.values());
PessoaUsuario pessoa = vetor.get(linha-1);
switch(coluna){
case 0:return new Boolean(true);
case 1:return pessoa.getIdUsuario();
case 2:return pessoa.getNmPessoa();
case 3:return pessoa.getIdPessoa();
case 4:return pessoa.getIdPessoaUsuario();
case 5:return pessoa.getNrCnpjcpf();
case 6:return pessoa.getNrRg();
case 7:return pessoa.getDtNascimento();
default:return "";
}
}
public Class<?> getColumnClass(int coluna) {
switch(coluna){
case 0:return getValueAt(0, coluna).getClass();
case 1:return String.class;
case 2:return String.class;
case 3:return String.class;
case 4:return String.class;
case 5:return String.class;
case 6:return String.class;
case 7:return String.class;
default:return Object.class;
}
}
public int getRowCount() {
return listaPessoas != null ? listaPessoas.size() + 1 : 1;
}
public boolean isCellEditable(int linha, int coluna) {
if (linha == 0){
return false;
}else{
return true;
}
}
}
Onde eu crio a tabela
modelo= new TableModelPessoa(listPessoa);
JTable jtable = new JTable(modelo);
listPessoa : é o MAP que a minha query me retorna com os resultados.
Bom espero que alguem possa me ajudar pq esta realmente dificil para mim.

