Problemas com DecimalFormat

Boa noite!

Gostaria que me tirassem uma dúvida com a utilização do DecimalFormat. Neste caso, o utilizo em um JFormattedJTextField, que me mostra o valor de um determinado produto (double) que está armazenado em um BD MySQL:

        DecimalFormat precoFinal = new DecimalFormat("#,###.00");
        NumberFormatter formatoFinal = new NumberFormatter(precoFinal);
        formatoFinal.setFormat(precoFinal);
        formatoFinal.setAllowsInvalid(false);
        tfPrecoFinal = new JFormattedTextField();
        tfPrecoFinal.setFormatterFactory(new DefaultFormatterFactory(formatoFinal));

O problema que estou tendo, é que quando o valor é igual a zero, o valor exibido é ,00. Ou seja, o zero antes da vírgula não aparece, como posso corrigir isto?

Obs. tosca e irrelevante: o valor é igual a zero quando o produto em questão (medicamento subsidiado pelo governo) realmente é gratuito ao cliente. Sempre tem alguém aqui no GUJ que quer entender todos os detalhes. :lol:

Obrigado!

Na máscara o "#" exibe um dígito desde que seja diferente de zero e o "0" exibe um dígito qualquer (inclusive o zero).

Na máscara o “#” exibe um dígito desde que seja diferente de zero e o “0” exibe um dígito qualquer (inclusive o zero).

Olá, Eric!

Acontece que se eu trocar o # por 0, um produto de valor 10, por exemplo, é exibido assim: 0.010,00 ao invés de 10,00.

Como devo alterar a máscara?

Obrigado pela ajuda!

Consegui achar uma solução aqui no GUJ.

Alterei a linha em que o Eric me explicou o motivo do erro da seguinte forma:

DecimalFormat precoFinal = new DecimalFormat("#,##0.00", new DecimalFormatSymbols (new Locale ("pt", "BR")));

Obrigado pela ajuda!