jTable Coluna com Formatos

5 respostas
S

Olá

tenho uma jTable e gostaria que uma coluna tivesse o formato moeda

aqui segue minha Tabela.

String[] colunas = {"Nome", "Salário", "Despesas", "Banco", "Valor a Receber"};

        jTable1.removeAll();
        Object[][] data = {,
        };
        
        jTable1.setModel(new DefaultTableModel(data, colunas) {
            //DEIXAR A TABELA NAO EDITVEL EM TODAS AS COLUNAS
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        });
        dtm = (DefaultTableModel) jTable1.getModel();
        jTable1.setAutoResizeMode(jTable1.AUTO_RESIZE_OFF);
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(300);
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(4).setPreferredWidth(150);
        jTable1.

        carregatabela();

eu gostaria que a coluna “Salário”, “Despesas”, “Valor a Receber” clunas (1), (2) e (4) respectivamente, fossem com formato moeda.

mas não sei como atribuir pattern pra uma coluna em jtable

agradeço a atenção

5 Respostas

drsmachado

Você pode definir isso em um TableModel personalizado. É o TableModel que define o que a tabela exibe.

S

Obrigado pela atenção.

Alguém poderia mostrar um exemplo, pois estou procurando a 3 dias sobre isso e não encontro, só encontro a mesma duvida sem solução :\

Agradeço a atenção

drsmachado

Você criou seu próprio table model, extendendo AbstractTableModel?
Como está o método setValueAt?

S

não, peguei da DefaultTebaleModel q é uma classe importada do javax.swing.table.DefaultTableModel;

jTable1.setModel(new DefaultTableModel(data, colunas) {
            //DEIXAR A TABELA NAO EDITVEL EM TODAS AS COLUNAS
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        });

depois só faço um set no tamanho de cada coluna.

dtm = (DefaultTableModel) jTable1.getModel();
        jTable1.setAutoResizeMode(jTable1.AUTO_RESIZE_OFF);
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(300);
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(4).setPreferredWidth(150);

mas nunca cheguei a criar uma “Mascara” par ao tipo de dados q vão dentro de cada coluna.

drsmachado

Então refaça tudo. Comece criando uma table model própria, que estende de AbstractTableModel. Depois, implemente adequadamente os métodos e então você terá controle do que mostra (e, principalmente, da forma como mostra) os dados na tua JTable.
Exemplos? Tem vários espalhados pelo GUJ, basta pesquisar.

Criado 22 de novembro de 2013
Ultima resposta 22 de nov. de 2013
Respostas 5
Participantes 2