1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Jtable formatado Data

Pessoal, estou com um jtable e nele tem uma coluna que é data, tenho que formatar padrão Brasileiro e estou tentando através do getTableCellRendererComponent mas não está funcionando tentei usando a variável como LocalDate e como Date mas sem sucesso, podem me ajudar no que estou fazendo de errado?

nos códigos abaixo deixei com Date enfim estou aberto a sugestões.

Minha Classe Renderer

package Util;


import java.awt.Component; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer;

public class MeuRenderer extends DefaultTableCellRenderer {

    SimpleDateFormat formatador = new SimpleDateFormat("dd-MM-yyyy");

    @Override
    public Component getTableCellRendererComponent(JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
        super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);

        //efeito zebra na tabela
        if (isSelected) {
            this.setBackground(new java.awt.Color(70, 130, 180));
        } else {
            if (row % 2 == 0) {
                this.setBackground(new java.awt.Color(211, 219, 255));
            } else {
                this.setBackground(new java.awt.Color(255, 255, 255));
            }
        }

        //formatar data 
        if (obj instanceof Date) {
            this.setText(formatador.format((Date) obj));
        }

        return this;

    } }

Método carregando a Lista

 public List<Membro> selectAll(Membro obj) throws SQLException {
        List lista = new ArrayList();
        String select = "select "
                + "p.pes_id, "
                + "p.pes_nome, "
                + "p.pes_dtinclusao, "
                + "m.mem_codigo, "
                + "m.pes_id, "
                + "m.mem_num,"
                + "m.con_id,"
                + "c.con_id,"
                + "c.con_descricao "

                + "FROM pessoa AS p "
                + "JOIN membro AS m "
                + "JOIN congregacao AS c "
                + "ON p.pes_id = m.pes_id "
                + "AND m.con_id = c.con_id "
                + "ORDER by m.mem_num";
        try (PreparedStatement stmt = getConnection().prepareStatement(select);
                ResultSet rs = stmt.executeQuery()) {
            while (rs.next()) {
                obj = new Membro();
                obj.setPes_id(rs.getInt("p.pes_id"));
                obj.setPes_nome(rs.getString("p.pes_nome"));
                obj.setPes_dtinclusao(rs.getDate("p.pes_dtinclusao"));
                obj.setMem_codigo(rs.getInt("m.mem_codigo"));
                obj.setmIdPessoa(rs.getInt("m.pes_id"));
                obj.setMem_numeroFicha(rs.getInt("m.mem_num"));
                obj.setCon_codigo(rs.getInt("m.con_id"));

                obj.setCon_descricao(rs.getString("c.con_descricao"));

                lista.add(obj);
            }
        }
        return lista;
    }

Meu configura tabela

public void configuraTabela() {
        view.getTabela().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        ListSelectionModel lsm = view.getTabela().getSelectionModel();
        lsm.addListSelectionListener((ListSelectionEvent e) -> {
            if (!e.getValueIsAdjusting()) {
                selecionarLinha(view.getTabela());
            }
        });

        javax.swing.table.TableCellRenderer renderer = new MeuRenderer();
        view.getTabela().setDefaultRenderer(Object.class, renderer);

        sorter = new TableRowSorter<>(modelTable);
        view.getTabela().setRowSorter(sorter);
        view.getTabela().setModel(modelTable);
        view.getTabela().getTableHeader().setReorderingAllowed(false);
        view.getTabela().getColumnModel().getColumn(0).setMinWidth(0);
        view.getTabela().getColumnModel().getColumn(0).setMaxWidth(0);
        view.getTabela().getColumnModel().getColumn(5).setMinWidth(0);
        view.getTabela().getColumnModel().getColumn(5).setMaxWidth(0);
    }

Modeltablel

package Model.Table;

import Model.Membro;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class ModelTableMembro extends AbstractTableModel {

    List<Membro> lista;

    private final int COLUMN_CODIGO = 0;
    private final int COLUMN_NOME = 1;
    private final int COLUMN_NUMFICHA = 2;
    private final int COLUMN_CONGREGACAO = 3;
    private final int COLUMN_DTINCLUSAO = 4;
    private final int COLUMN_IDPESSOA = 5;
    private Date date;

    public ModelTableMembro(List<Membro> l) {
        lista = new ArrayList<>(l);
    }

    public ModelTableMembro() {
        this(new ArrayList<Membro>());
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        return false;
    }

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

    @Override
    public int getColumnCount() {
        return 6;
    }

    @Override
    public String getColumnName(int columIndex) {
        if (columIndex == this.COLUMN_CODIGO) {
            return "codigoMembro";
        }
        if (columIndex == this.COLUMN_NOME) {
            return "Nome";
        }
        if (columIndex == this.COLUMN_NUMFICHA) {
            return "Numero Ficha";
        }
        if (columIndex == this.COLUMN_CONGREGACAO) {
            return "Congregação";
        }
        if (columIndex == this.COLUMN_DTINCLUSAO) {
            return "Membro Desde:";
        }
        return "codigoPessoa";
    }

    public void addRow(Membro c) {
        lista.add(c);
        Collections.sort(this.lista);
        this.fireTableDataChanged();
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Membro c = this.lista.get(rowIndex);

        if (this.COLUMN_CODIGO == columnIndex) {//0
            return c.getMem_codigo();
        }
        if (this.COLUMN_NOME == columnIndex) {//1
            return c.getPes_nome();
        }
        if (this.COLUMN_NUMFICHA == columnIndex) {//2
            return c.getMem_numeroFicha();
        }
        if (this.COLUMN_CONGREGACAO == columnIndex) {//3
            return c.getCon_descricao();
        }
        if (this.COLUMN_DTINCLUSAO == columnIndex) {//4
            return c.getPes_dtinclusao();
        }
        return c.getPes_id();//5
    }

    @Override
    public void setValueAt(Object obj, int linha, int coluna) {
        Membro c = lista.get(linha);

        switch (coluna) {
            case 0:
                c.setMem_codigo((int)obj);
                break;
            case 1:
                c.setPes_nome((String)obj);
                break;
            case 2:
                c.setMem_numeroFicha((int)obj);
                break;
            case 3:
                c.setCon_descricao((String)obj);
                break;
            case 4:                        
                c.setPes_dtinclusao((Date)obj);
                break;
            case 5:
                c.setPes_id((int)obj);
                break;
        }
        this.fireTableCellUpdated(linha, coluna);
    }

    public void removeRow(int linha) {
        this.lista.remove(linha);
        this.fireTableRowsDeleted(linha, linha);
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.