Pergunta

Estou tendo problemas para fazer um JFormattedTextField para usar datas com o formato dd/MM/aaaa.Especificamente, conforme o usuário digita, o cursor deve "pular" as barras e ir diretamente para a próxima posição numérica.

Além disso, o JFormattedTextField deve verificar se a data inserida é válida e rejeitá-la de alguma forma se a data for inválida ou "corrigi-la" para uma data válida, como se o usuário inserisse "13" como mês, definisse-o como "01 " e adicione +1 ao ano.

Tentei usar uma máscara ("##/##/####") com o método activate() do JFormattedTextField para verificar se a data é válida, mas parece que esses dois não funcionam bem juntos (ou eu sou muito iniciante em Java para saber como ...:), e então o usuário pode digitar qualquer coisa no campo.

Qualquer ajuda é muito apreciada!Obrigado!

Foi útil?

Solução

Talvez seja necessário usar um JTextField normal e chamar setDocument() com um documento personalizado.Eu recomendo estender PlainDocument, pois isso facilita a validação da entrada conforme o documento é alterado e a adição de barras conforme apropriado.

Outras dicas

tente usar JCalendar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top