Jformated volta ao valor ao sair

Olá boa noite;

Tenho um campo jformated que eu altero ou escluo o mesmo e ao sair ele volta ao que tava exempo:

Campo com a seguinte data: 05/05/2013

eu apago a data, quando saio para outro campo a data volta e fica do mesmo jeito não consigo apagar.

Acabei de fazer novos teste e identifiquei o seguinte.

Não gera nem uma exerção e também nem um tipo de erro.

Se eu tentar alterar o campo jformated ele funciona normalmente altera sem problema algum.

Só que se eu apago o campo, e mudo de campo ele automaticamente ele coloca o valor que eu apaguei no jformated.

Eu estou usando persistência usei o mestre detalhe, e não tem nem um código de foco instalado nele.

Não da nem um tipo de erro apenas não ta aceitando valores nulos depois que o campo e preenchido uma primeira vez, mas se ele ja esta nullo e não for mexido funciona normalmente.

Outro detalhe importante, em campos Jtextfield funciona normalmente e aceita tudo inclusive campos nulos.

Realmente, criei um botão de testes e funcionou perfeitamente.

Pensei em fazer o seguinte, colocar um código em focus lost ou seja quando ele sair o valor nulo seria aplicado.

Mas eu preciso fazer um contador de caracteres no estilo, se caracteres no campo =0 então aplicar o campo nulo, mas não sei como fazer esse contador de caracteres, alguém teria alguma ideia de como fazer?

Ou alguma outra ideia para a solução deste problema?

Consegui resolver o problema;

Não consegui entender direito a forma que foi explicada anteriormente, então eu tratei no focus-lost que seria o mais apropriado, ficou da seguinte forma:

        if (valordofield.getText().length() == 0) {
            lancValorField.setValue(null);
                }

Fiz o teste e funcionou perfeitamente sem qualquer tipo de erro.

[quote=wdwebsite]Olá boa noite;

Tenho um campo jformated que eu altero ou escluo o mesmo e ao sair ele volta ao que tava exempo:

Campo com a seguinte data: 05/05/2013

eu apago a data, quando saio para outro campo a data volta e fica do mesmo jeito não consigo apagar.[/quote]Gera alguma exceção ao perder o foco?
Poderia postar as configurações deste campo?

[quote=wdwebsite]Acabei de fazer novos teste e identifiquei o seguinte.

Não gera nem uma exerção e também nem um tipo de erro.

Se eu tentar alterar o campo jformated ele funciona normalmente altera sem problema algum.

Só que se eu apago o campo, e mudo de campo ele automaticamente ele coloca o valor que eu apaguei no jformated.

Eu estou usando persistência usei o mestre detalhe, e não tem nem um código de foco instalado nele.

Não da nem um tipo de erro apenas não ta aceitando valores nulos depois que o campo e preenchido uma primeira vez, mas se ele ja esta nullo e não for mexido funciona normalmente.[/quote]Se não me engano, ao apagar o texto o valor não é nulo mas branco e, certamente deve estar utilizando um formatador de data associado ao JFormattedTextField. Nesse caso, ele só aceita valores válidos para a máscara (uma data). Tente, por um evento (crie um botão temporário) e defina o valuee para null e veja se apaga:

Se funcionar, significa que terá que adaptar algo em seu código para permitir valores em branco para o campo em específico (como não permitir estar em branco).
Já tive o mesmo tipo de necessidade e, um formatador simples não foi viável, tendo que utilizar FormatterFactory, aguardando String e formatando através dos formatadores/Documents (não lembro bem como foi que fiz, mas direto não funcionava)

Cara, achei o código que foi feito, só não dá pra postar pq tem muita coisa nele e provavelmente só confundiria…

Mas, foi utilizado o DefaultFormatterFactory que possui os métodos setEditFormatter e setDisplayFormatter. Ambos recebem um AbstractFormatter (porém utilizei o DefaultFormatter para simplificar). O primeiro (Edit) é o formatador em tempo de edição (quando o foco está no campo) e o segundo é o formatador de exibição (quando o foco não está no campo).

Naquele que for necessário (no meu caso, em ambos os momentos) utilizei um implementação de DateFormatter (não confundir com DateFormat) e que possui um método protegido: getDocumentFilter que retorna um DocumentFilter. Fiz a implementação de DocumentFilter que atendesse minha necessidade.

Não sei se é a melhor maneira para você, no meu caso, eu tinha muitos outros requisitos que fizeram que esta fosse a melhor solução (existência de n-formatadores com as mais variadas características que os formatadores normais não atendiam).