Pessoal estou com um probleminha quanto ao preenchimento de uma coluna na jtable, caso:
Tenho uma jTable onde a primeira coluna quero que tenha um checkbox só que quando estou colocando ela para rodar não esta mostrando, segue meu codigo abaixo:
package com.br.aplicacao.cliente.telas.reenviomensagem;
import com.br.aplicacao.servidor.eventos.EventoDadosTelaReenvioMensagensDmq;
import com.br.framework.util.datahora.DataHoraUtil;
import java.lang.Boolean;
import javax.swing.table.AbstractTableModel;
public class ModeloTabelaReenvioMensagem extends AbstractTableModel {
/** Constante indicando a ordem da coluna Data da tabela de reenvio de mensagens*/
public static final int COLUNA_REENVIO = 0;
/** Constante indicando a ordem da coluna Data da tabela de reenvio de mensagens*/
public static final int COLUNA_DATA = 1;
/** Constante indicando a ordem da coluna Tipo da tabela de reenvio de mensagens */
public static final int COLUNA_TIPO = 2;
/** Número de colunas na tabela */
public static final int NUMERO_COLUNAS = 3;
/** Lista contendo os dados sendo exibidos na tabela */
private EventoDadosTelaReenvioMensagensDmq dadosTabela;
public ModeloTabelaReenvioMensagem(EventoDadosTelaReenvioMensagensDmq dadosTabela) {
// início do método
setDadosTabela(dadosTabela);
}
public EventoDadosTelaReenvioMensagensDmq getDadosMensagensEnvidas(int linha) {
// início do método
return getDadosTabela();
}
@Override
public Class getColumnClass(int coluna) {
// declaração das variáveis
Object dadoCelula; // dado da célula da tabela
// início do método
if (coluna == 0) {
return Boolean.class;
}
if (getRowCount() == 0) {
return Object.class;
}
dadoCelula = getValueAt(0, coluna);
if (dadoCelula == null) {
return Object.class;
}
return dadoCelula.getClass();
}
@Override
public int getRowCount() {
// início do método
return getDadosTabela().getConteudoMensagem().size();
}
public int getColumnCount() {
// início do método
return NUMERO_COLUNAS;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// declaração das variáveis
EventoDadosTelaReenvioMensagensDmq dadosTabela; // conteúdo da linha selecionada
// início do método
dadosTabela = getDadosTabela();
switch (columnIndex) {
case COLUNA_DATA:
return DataHoraUtil.formataDataHora("dd/MM/yyyy HH:mm:ss", dadosTabela.getDataEnvio());
case COLUNA_TIPO:
return dadosTabela.getTipo();
}
return null;
}
private EventoDadosTelaReenvioMensagensDmq getDadosTabela() {
// início do método
return dadosTabela;
}
private void setDadosTabela(EventoDadosTelaReenvioMensagensDmq dadosTabela) {
// início do método
this.dadosTabela = dadosTabela;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
super.setValueAt(aValue, rowIndex, columnIndex);
}
}
Abaixo segue meu codigo que estou chamando meu modelo e definindo o cabeçalho da tabela:
/**
* Cria o cabeçalho da tabela exibindo os grupos e define sua propriedades iniciais.<p>
*
* @return Cabeçalho da tabela Grupos.
*/
private DefaultTableColumnModel defineCabecalhoTabelaReenvioMensagens() {
// declaração das variáveis
DefaultTableColumnModel cabecalhoTabela; // modelo contendo o cabeçalho da tabela
TableColumn coluna; // coluna do cabeçalho
// início do método
cabecalhoTabela = new DefaultTableColumnModel();
// criando a coluna reenvia?
coluna = new TableColumn();
coluna.setModelIndex(ModeloTabelaReenvioMensagem.COLUNA_REENVIO);
coluna.setHeaderValue("Reenvio?");
coluna.setPreferredWidth(200);
cabecalhoTabela.addColumn(coluna);
// criando a coluna Data
coluna = new TableColumn();
coluna.setModelIndex(ModeloTabelaReenvioMensagem.COLUNA_DATA);
coluna.setHeaderValue("Data");
coluna.setPreferredWidth(300);
cabecalhoTabela.addColumn(coluna);
// criando a coluna Tipo
coluna = new TableColumn();
coluna.setModelIndex(ModeloTabelaReenvioMensagem.COLUNA_TIPO);
coluna.setHeaderValue("Tipo");
coluna.setPreferredWidth(80);
cabecalhoTabela.addColumn(coluna);
return cabecalhoTabela;
}
/**
* Preenche a tabela reenvio de mensagens com os dados recebidos do servidor.<p>
*
* @param mensagensEnviadas Lista contendo os dados recebidos do servidor
*/
public void preencheDadosTela(EventoDadosTelaReenvioMensagensDmq mensagensEnviadas) {
// início do método
tblMensagem.setModel(new ModeloTabelaReenvioMensagem(mensagensEnviadas));
tblMensagem.setColumnModel(defineCabecalhoTabelaReenvioMensagens());
tblMensagem.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// definindo o alinhamento do cabeçalho e dos dados da tabela de grupos
tblMensagem.getColumnModel().getColumn(0).setHeaderRenderer(new AlinhaTituloColunaTabela(SwingConstants.CENTER));
tblMensagem.getColumnModel().getColumn(0).setCellRenderer(new AlinhaColunaTabela(SwingConstants.LEFT));
tblMensagem.getColumnModel().getColumn(1).setHeaderRenderer(new AlinhaTituloColunaTabela(SwingConstants.CENTER));
tblMensagem.getColumnModel().getColumn(1).setCellRenderer(new AlinhaColunaTabela(SwingConstants.LEFT));
}
Se alguem puder me ajudar agradeço.