Máscara de Hora

0 respostas
tflm

Boa tarde.
Eu estou precisando criar um componente que tenha máscara de hora.
No início tinha utilizado o JSpinner, e em seu setEditor, coloquei hh:mm.

Ele funciona correto utilizando o giratório do próprio componente. Entretanto, ele permite a entrada de qualquer caractere por meio do teclado.

Então, mudei para o JFormattedTextField, pois ele aceita máscara de números. Contudo, quero que seja permitido a entrada de apenas horas válidas. Não sei como fazer isso utilizando classes do java. Alguém sabe?

O que fiz por enquanto foi:

mask = null;  
            try {  
                mask = new MaskFormatter("##:##");  
                setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(mask));
            } catch (Exception e) {  
            
            }  
            this.setFormatter(mask);

Até cheguei a criar uma regex para validar hora, contudo a validação é feita depois que o usuário entra com a hora por completo e não a cada entrada de dígitos.

A outra opção seria chamar minha regex em cada entrada de dígito, porém se o cara digitou alguma coisa proibida eu teria que limpar aquele caractere.

Eu gostaria de saber: há alguma classe , método, qualquer coisa pronta que me auxilie nesta rotina, ou terei que fazer da forma que descrevi msm?

Obrigado.
Abraços.

Criado 24 de setembro de 2008
Respostas 0
Participantes 1