JFormattedTextField capturando lixo

Pessoal, estou com uma tela de cadastro básico (crud) e coloquei dois componentes JFormattedTextField e na propriedade FormatterFactory criei uma máscara personalizada para telefone ( (##)####-####).

Até aqui tudo bem, insiro os números e são persistidos no banco. Mas o problema começa na hora da navegação pelos registros, quando executo minha tela de cadastro, ele busca pelo último registro inserido no banco e o apresenta na tela, a partir de então o usuário pode navegar normalmente por todos os registros, porém esse primeiro número capturado do banco permanece para todos os contatos, ou seja, o campo não está atualizando seus valores.

Detalhe: só acontece nesse componente.

Se consulto no banco os números foram gravados corretamente. Como faço para resolver esse problema? Acredito que é alguma particularidade desse componente mesmo, mas não consigo resolver.

Pessoal, percebi um detalhe que parece o que está causando a anomalia que citei.

Minha máscara estará formatada apenas para números (##-####-####) e no banco os dados estão como strings, e ao capturá-los eles retornam com strings também (por exemplo, resultset.getString(“telefone”)) e isso parece estar deixando o componente com um comportamento estranho.

Fiz uma mudança na máscara para: **-- e dessa forma o problema desaparece.

Um detalhe, estou salvando a máscara no banco também.

Tentei manter a máscara inicial de números, e antes de setar os dados no componente fazer uma conversão para int, mas não deu certo. Alguém tem uma sugestão para que eu possa resolver isso?

É desejável que apenas números sejam aceitos.