Formatação de um campo com valor de moeda

Como faço para formatar um TextField para aceitar apenas valor moeda???

Isaac,

Essas particularidades do JTextField são comuns. Datas, Moedas, e mascaras em geral.
Qdo precisei de uma mascara para Data procurei por JDateTexTField, achei alguns codigos prontos e utilizei.
Deve ter alguma coisa pronta por ae.
A JDK1.4 ja acompanha algumas mascaras, mas pra moeda ainda nao vi.
Vo dar uma pesquisada. Se achar alguma coisa te dou um toque.
Faça o mesmo.

Até mais,

Thiago

Tem tanta gente querendo fazer isso por aí que podia ter um repositório pra essas coisas…

Vc pode usar JFormattedTextField, tem exemplos no site da Sun. Pra controlar o tamanho do campo em dígitos, vc pode usar um FixedLengthDocument, cujo código está aqui em algum fórum do GUJ, numa discussão que apareceu por aqui (use a busca).

A idéia com o JFormattedTextField é usar um NumberFormatter, passando o seu NumberFormat assim:

// olha que boiada, já te dei os pacotes:
import javax.swing.JFormattedTextField;
import javax.swing.text.NumberFormatter;
import java.text.NumberFormat;

   NumberFormat format = NumberFormat.getCurrencyInstance();
  JFormattedTextFiel field = new JFormattedTextField(new NumberFormatter(format));

O problema com NumberFormats é que eles exigem colocar R$ na frente, por exemplo. Eu geralmente uso um DecimalFormat mesmo.

Outra abordagem é usar um MaskFormatter e fazer a verificação na mão, é mais chato mas o resultado final é melhor.

[]s