Galera, tenho a seguinte situação:
Tenho uma tela de cadastro com campos formatados, por exemplo Data.
O código tá da seguinte forma:
try {
mskData = new MaskFormatter("##/##/####");
mskData.setPlaceholderCharacter('_');
ftData = new JFormattedTextField(mskData);
} catch (ParseException ex) {
Logger.getLogger(PreNotaCadastro.class.getName()).log(Level.SEVERE, null, ex);
}
javax.swing.JTextField = new javax.swing.JFormattedTextField(mskData);
O problema é o seguinte, quando o usuário realiza um cadastro, tenho um método que limpa todos os campos da tela. Porém, se o usuário posiciona o cursor no campo que tem a máscara e pressiona TAB, o campo recupera o valor digitado anteriormente.
Tentei repetir o mesmo código de formatação acima quando estou limpando os campos, mas não dá certo, o valor digitado no campo simplesmente fica no lá estático, sem nem ao menos limpar o campo.
Alguém já teve esse problema ou sabe como resolver isso?
Deise, eu usei o masformatter também, e quando eu limpava o campo eu usava:
data.setText("");
o problema que eu tive é quando eu digito, e apago normalmente e vou para outro campo sem limpar o text field com akele comando que postei acima, ai os dados voltam para o textfield =/
[quote=tarlix]Deise, eu usei o masformatter também, e quando eu limpava o campo eu usava:
data.setText("");
o problema que eu tive é quando eu digito, e apago normalmente e vou para outro campo sem limpar o text field com akele comando que postei acima, ai os dados voltam para o textfield =/
[/quote]
É bem isso que acontece comigo também!
Mas tive uma ideia agora…talvez se ao invés de fazer:
data.setText("") ;
fizesse
data.setText("__/__/____");
Esse é o conteudo do campo quando não está preenchido…talvez funcione…
Só não dá pra testar agora porque to trabalhando…mas depois tento e posto aqui dizendo se deu certo ou não!
A questão é: tenho uma máscara declarada para cada campo, nunca utilizo a mesma máscara em mais do que um JTextField.
Só que quando o usuário acaba de realizar um cadastro, faço assim para limpar o campo:
textFieldData.setText(""); //Atribuo vazio ao campo sem limpar a máscara!!!
Aí quero realizar um novo cadastro.
Meu campo está bonitinho, vazio, com a máscara de Data “//____”. Aí eu coloco o cursor do mouse no campo de data e sem querer dou um TAB… aí que vem o problema, neste momento aparece no campo, mesmo depois de eu atribuir o valor “”, a data que eu tinha digitado no cadastro anterior.
Isso acontece em todos os campos que aplico MaskFormatter…
Lembrando que cada campo tem sua máscara…tem telas que tem 10 máscaras diferentes para cada campo específico…
Ola,
para limpar os campos é só usar textfield.setText("");
eu criei uma classe especifica para todas as mascaras que uso ai quando quero criar um textfield com ela eu faço o seguintetxtCPF=new Mask1().maskCPF(); e ao usar o método setText()funciona direitinho…
tu podes fazer o seguinte:
1-Criar uma classe e colocar la todas as tuas mascaras