Boa Noite!
Pessoal, me deparei com o seguinte problema:
Eu tenho alguns campos em um formulário que quero formatar, tanto na entrada de dados do usuário, quanto na consulta ao banco.
A formatação funciona para a entrada de dados do funcionário (se eu não usar o setText()), porém quando é para formatar os dados vindos do banco de dados (usando o setText()) a formatação acontece somente para o último JFormattedTextField a receber a MaskFormatter que criei para data.
Outra coisa que observei nos campos que deveriam ficar com os dados formatados, é que somente quando o campo perde o foco que a formatação aparece, mas sem os dados do o setText().
Alguém sabe me dizer porque isso acontece e como eu poderia resolver isso?
Abaixo segue um código para exemplificar meu projeto, se puder faça o teste e veja o comportamento:[code]import java.awt.FlowLayout;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.MaskFormatter;
import java.text.ParseException;
public class TextFieldComMascara extends JFrame {
private JFormattedTextField data, data2;
private MaskFormatter ftmData;
public TextFieldComMascara()throws ParseException{
ftmData = new MaskFormatter("##/##/####");
data = new JFormattedTextField(ftmData);
data2 = new JFormattedTextField(ftmData);
data.setText("22052011");
data2.setText("22052011");
ftmData.setValidCharacters("0123456789");
data.setColumns(6);
data2.setColumns(6);
add(data);
add(data2);
setLayout(new FlowLayout());
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args) {
try {
new TextFieldComMascara();
}catch (ParseException e) {
e.printStackTrace();
}
}
}[/code]
Desde já agradeço!
Abraço!