JFormattedTextField - que aceita só números

4 respostas
knik

Amigos, eu fiz assim:

public static DefaultFormatterFactory NR(){
        MaskFormatter fNR = null;
        try {
            fNR = new MaskFormatter("#");            
        } catch (Exception e) {}
        DefaultFormatterFactory factory = new DefaultFormatterFactory(fNR, fNR);
        return factory;
    }

O código acima aceita só números, porém só 1 (um) dígito. Então eu modifico e coloco mais um # na máscara. Aí aceita dois dígitos numéricos. Pois bem, eu posso colocar mais # para caber mais dígitos. O problema é que a máscara é fixa, ou seja, só aceita a quantidade de dígitos quantos forem a quantidade de #.
Eu queria que o campo fosse capaz de receber um número qualquer (com uma quantidade variável de dígitos).
Já tentei usar exemplos aqui do GUJ, inclusive usando NumberFormat, mas não consegui implementar porque ainda sou meio novato.
Alguém pode me ajudar a fazer isto com um exemplo??
Eu uso NetBeans.
Obrigado

4 Respostas

C

JFormattedTextField formattedNumero=new JFormattedTextField(NumberFormat.getNumberInstance());

C

import java.text.NumberFormat;

JFormattedTextField formattedNumero=new JFormattedTextField(NumberFormat.getNumberInstance());

ve se isso te ajuda.

knik

Como eu implemento isto no NetBeans, propriedade FormattedFactory? ele não é incompatível com NumberFormat? Tentei todas as formas e não consegui.

R

use o método setValidCharacters():

ex: m.setValidCharacters(“[telefone removido]”);

“m” como sendo o objeto MaskFormat.

Espero ter ajudado.

Criado 6 de junho de 2006
Ultima resposta 26 de jan. de 2007
Respostas 4
Participantes 3