Java JFormattedTextField para digitação de datas
-
09-06-2019 - |
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!
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