Problemas com JFomattedTextField

Estou usando alguns JFormattedTextField em uma aplicação desktop onde preciso colocar uma máscara de moeda (R$ 1.100,00), porém, quando eu seleciono e aplico a máscara ela não funciona quando inicio a aplicação. Tentei de uma forma manual, colocando no código de pós-criação mas mesmo assim a máscara não funciona. Queria a ajuda para resolver esse problema pois em projetos passados nunca tive esse problema.

Posta todo o código que está utilizando para fazer essa tratativa, fica mais fácil do pessoal do fórum te ajudar.

Só pra complementar, você já ouviu falar no jNumberField ?
Ele é um campo próprio para trabalhar com valores monetários, não havendo a necessidade de criar máscaras, formatações, validações e etc… o componente já possuí tudo isso pronto.

txtTaxaEmbarque.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(java.text.NumberFormat.getCurrencyInstance())));

Também tentei esse:

try {
            javax.swing.text.MaskFormatter mascara = new javax.swing.text.MaskFormatter("¤ #,##0.00");
            mascara.setPlaceholderCharacter('_');
            txtSubTotal = new javax.swing.JFormattedTextField(mascara);
        } catch (ParseException e) {
            e.printStackTrace();
        }

Não, ainda não ouvi falar, vou pesquisar.

Tenta fazer da seguinte maneira:

NumberFormatter formatter = new NumberFormatter(new DecimalFormat("#,###,###.00"));
formatter.setAllowsInvalid(false);//Não permite valores inválidos para o campo 

JFormattedTextField.setFormatterFactory(new DefaultFormatterFactory(formatter));

Não funcionou esse método.

Eu testei aqui e funcionou perfeitamente, quando você executar, digite valores dentro do campo para ver a formatação funcionando!

Fiz isso, não mudou nada. Estava como se estivesse digitando sem máscara.

Deve estar fazendo errado, em que momento você está aplicando essa formatação ?

Eu testei e a máscara é aplicada, mas só é aplicada ao perder o foco do TextField. E a forma com que quero aplicar a máscara não funciona, com a cifra (R$) na frente. Ao perder o foco o TextField é limpo.

Coloca esse código no focusLost do seu campo!

String valor = jFTF.getText();
DecimalFormat df = new DecimalFormat();
df.applyPattern( "R$ #,##0.00; R$ (#,##0.00)" );
jFTF.setText(df.format( new java.math.BigDecimal(valor)));