Validação em TextField

Seguinte pessoal
Eu tenho um textField e eu jah coloquei algumas validações nela, como somente aceitar numeros.
Agora preciso que somente aceite numeros entre 1 e 5.
Se alguem puder me ajudar.

Vlw!

vc pode implementar a Validator , do faces;
depois no faces-config.xml, caso jsf 1.1, vc registra seu validator.


<validator>
    ...
    <validator-id>nomeDoValidator</validator-id>
    <validator-class>
        pacotes.nomeDaClasseDoValidator
    </validator-class>    
</validator>

depois é só vc chamar este validator, no input que quizer.

Para permitir apenas números você está implementando um Document? Se for fica uma idéia para permitir apenas números entre 1 e 5:

// Implementação do método insertString. public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { super.insertString(offs, str.replaceAll("[^1-5]", ""), a); // Apaga tudo que não seja um caractere entre 1 e 5. }

Não entendi muito bem, eu quero que ele só aceite os numeros 1, 2, 3, 4 e 5.
Se ele tentar digitar 6 ou 0 ou 9 ele não aceite.

Vlw

Como você fez para o text field aceitar apenas números?

Você coloca um codigo no Evento KeyTyped do seu TextField .
Só colocar esse codigo aqui:

[code]char c = evt.getKeyChar();

          if(!Character.isDigit(c) ){
             evt.consume();
             JOptionPane.showMessageDialog(null,"Informe apenas Números!");                  
    }[/code]

Blzinha!
:lol::wink:

Eu tinha falado em implementar essa validação no Document, porque assim você atua diretamente no modelo do text field.

Implementando KeyListener do jeito que está só vai validar se o usuário digitar letra por letra no teclado. Por exemplo, o texto “12345” é válido, pois contém apenas números, mas se o usuário copiar e colar com Ctrl + V, ele será invalidado, pois o evt.getKeyChar() vai retornar ‘V’. Outro problema, se o usuário copiar e colar com mouse, qualquer texto será inserido sem passar pela validação, pois nenhum evento de teclado será disparado.

Se quiser entender melhor como funciona o Document, indico este artigo: http://www.guj.com.br/article.show.logic?id=29

Então isto eu sei.
Porem o meu textField é um campo nota! que só aceita numeros e apenas 1 numero.
Se fosse um TextField diferente, tipo, numero de telefone ou algo parecido, eu teria pego outro código.
Mas Vlw.

Mas vou dar uma olhada no topico.
Vlw cara.

Então, se você quiser aceitar apenas números entre 1 e 5 com KeyListener, faça assim:

[code] char c = evt.getKeyChar();

          if((c < '1') || (c > '5')){
             evt.consume();
             JOptionPane.showMessageDialog(null,"Informe apenas Números entre 1 e 5!");                  
    }[/code]

Mas os problemas citados anteriormente ainda vão persistir. Aconselho tentar implementar o Document e qualquer dúvida que surgir poste aqui.

Blz cara…
Vlw vou testar o Codigo.
Qualquer duvida eu posto mesmo.

Abraços