Olá a todos,
andei pesquisando aqui no fórum sobre formatação em JTable e cheguei no seguinte código:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.text.ParseException;
import javax.swing.DefaultCellEditor;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
import javax.swing.text.MaskFormatter;
public class TabelaFuncionario extends JFrame{
MaskFormatter pis;
JFormattedTextField ftf;
public TabelaFuncionario(){
try{
pis = new MaskFormatter("###.#####.##-#");
pis.setPlaceholderCharacter('_');
}
catch(ParseException e){
e.printStackTrace();
}
ftf = new JFormattedTextField(pis);
String[] colunas = {"Código", "Nome", "PIS"};
Object[][] conteudo = {
{"1", "Funcionário 1", "11111111111"},
{"2", "Funcionário 2", "22222222222"}
};
JTable tabela = new JTable(conteudo, colunas);
TableColumn col = tabela.getColumnModel().getColumn(2);
col.setCellEditor(new DefaultCellEditor(ftf));
tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
Container c = getContentPane();
c.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
}
Pois bem, a JTable está editavel, e com o preenchimento já feito que é apenas para teste. Daí vem minha dúvida:
Por que não consigo colocar a máscara em uma coluna que NÃO seja editável, e que já na inicialização da JTable, sem ter que entrar na célula no modo de edição para aplicar a máscara?
Quero apenas mostrar os dados. Sem nenhum tipo de edição na JTable.
Desde já agradeço.
Felipe Jacson
[]'s