Fala pessoal… gostaria de tirar uma duvida…
Estou trabalhando com JFormattedTextField e encontrei alguns probleminhas bobos porem percistentes rsrsrsrs:::::::
Quando eu configuro no JFormatted a minha mascara (##/##/##), quando vou no formulario, preencho esse campo tudo certo respeita é só deixa atribuir numero… só que quando eu saio do campo, tiro o foco dele e o mesmo nao estiver todo preenchido ele restaura a ultima informação completa que ele teve!
Vou explicar melhor: se eu tiver preenchido no meu campo a data “23/08/1”, como voces podem ver… esta faltando o “0” do ano! ao inves dele gravar essa informação… ele simplesmente zera tudo! por que? tem como eu tratar isso pra que ele aceite informações em falta?
Boa noite amigo…
Esse rosto me é conhecido de outros momentos, de outras linguagens… kk :lol:
Enfim, posta o seu código pra gente dar uma olhada, ficou um pouquinho confuso.
Abraço! 
Olá!
Normalmente não gosto de usar o JFormatedTextField… gosto de usar a classe Document pra controlar o que é digitado no textField.
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
/**
*
* @author Eliangela
* @author Gicelly
*/
public class DocumentoData extends PlainDocument {
private static final int MAX_LENGTH = 10;
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
if (!Character.isDigit(str.charAt(0))) {
return;
}
String texto = getText(0, getLength());
int tamanhoTexto = texto.length() + str.length();
if (tamanhoTexto < MAX_LENGTH) { // 22/10/2010
remove(0, getLength());
StringBuffer strBuf = new StringBuffer(texto.replace("/", "") + str);
if (tamanhoTexto >= 5){
strBuf.insert(4, "/");
strBuf.insert(2, "/");
} else if (tamanhoTexto >= 2){
strBuf.insert(2, "/");
}
super.insertString(0, strBuf.toString(), a);
} else {
super.insertString(offs, str.substring(0, (MAX_LENGTH - getLength())), a);
}
}
}
Use assim:
JTextField seuText = new JTextField();
setText.setDocument(new DocumentoData());
Dentro do método insertString, vc pode colocar algumas condições, por ex, quando uma pessoa não digita a Data toda, vc pode completar com zero, etc… é bem mais fácil trabalhar assim.
Tutorial GUJ sobre a classe PlainDocument: http://www.guj.com.br/article.show.logic?id=29
espero ter ajudado.
Abraços