Uma outra coisa legal sobre JFormattedTextField (que, de agora em diante, será chamado de JFTF) é que ela pode ser usada em outros componentes do Java. Aqui eu vou mostrar como fazer uma célula do JTable ficar formatadinha certinho:
public class TabelaJFTF extends JFrame{
MaskFormatter cep;
JFormattedTextField jftf;
public TabelaJFTF(){
super("Testando JTable com JFTF");
////// Parte que interessa /////
try{
cep = new MaskFormatter("#####-###");
cep.setPlaceholderCharacter('_');
}
catch(ParseException excp){
e.printStackTrace();
}
// Jogando a máscara no JFTF
jftf = new JFormattedTextField(cep);
// Título das colunas
String[] colunas = {"Nome", "Cidade", "CEP"};
// conteúdo da tabela
// (pode ser um select, qqr coisa)
Object[][] conteudo = {
{"Nome 1", "Cidade 1", "12345-678"},
{"Nome 2", "Cidade 2", "91011-121"}
};
JTable tabela = new JTable(conteudo, colunas);
TableColumn col = tabela.getColumnModel().getColumn(2);
// Aqui a mágica acontece!
col.setCellEditor(new DefaultCellEditor(jftf));
tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
///// Parte que não interessa
Container c = getContentPane();
c.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
}
Pra ver se funcionou, chame a classe TabelaJFTF:
TabelaJFTF tabela = new TabelaJFTF;
tabela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Lembrando que, desse jeito, o valor só será formatado automaticamente quando a célula for editada, ou seja, quando a tabela é exibida, as colunas serão exibidas como foram declaradas no construtor da tabela.
Por agora é isso.
Té o/
3 comentários:
sei que é um post velho...
mas caso o dono do blog ver e puder ajudar.
Tem como evitar isso aqui que vc falou?
"Lembrando que, desse jeito, o valor só será formatado automaticamente quando a célula for editada, ou seja, quando a tabela é exibida, as colunas serão exibidas como foram declaradas no construtor da tabela."
fazer que assim que seja inicializado a mascara já seja aplicada? sem ter que entrar em modo de edição?
[]'s
felipejacson@hotmail.com
Brothar, funcionou certinho aqui, e olhe que eu estou usando o editor do netbeans ainda!
Valeu, abraço!
bom exemplo, funciona legal!
Valeu.
Postar um comentário