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
Você pode definir isso em um TableModel personalizado. É o TableModel que define o que a tabela exibe.
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
Você criou seu próprio table model, extendendo AbstractTableModel?
Como está o método setValueAt?
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.
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.