MaskTextField para JavaFX

Estou desenvolvendo um software em JavaFX, e essa é a primeira vez que utilizo essa tecnologia(Também ainda não conheço todas as suas ferramentas de fato). De começo foi amor à primeira vista, ainda mais com a arquitetura de FXML editados no JavaFX SceneBuilder e um Controller.

Porém, nem tudo é perfeito, e num determinado momento precisei de máscaras nos Text Fields, o que não é implementado nativamente. Pesquisa daqui, pesquisa lá, não achei nada que realmente me agradasse, então coloquei a mão na massa e criei um MaskTextField.

A classe está em: https://github.com/davidaug/masktextfield

Recentemente fiz um vídeo para ajudar um pouco: https://youtu.be/P2kBxpLkDZc

Como Adicionar no seu Projeto:

  1. Adicione a classe MaskTextField.java no seu projeto
  2. Importe no seu FXML a Classe MaskTextField,
    exemplo: <?import util.MaskTextField ?>

Como utilizar:

  1. Crie uma instância classe(Ou coloque no FXML)
  2. Use a função void setMask(String mask) para criar uma máscara
  3. Com os Caracteres abaixo, altere a máscara [Ex: object.setMask(“XXXXX”)]

 Caracteres da máscara:

* = aceita qualquer caracter

A = somente alfanuméricos

N = somente números

L = somente letras

U = somente letras maiúsculas

l = somente letras minúsculas

S = qualquer caracter menos espaço

P = somente letras e pontos

M = letras, números e pontos

! = repetições infinitas

 

Exemplos:

String mask = “N!.N!”
Aceita somente números separados por um número, Ex: 1.1 , 111.111 , 123124.1 12312.00

String mask = “NN.NN”
Aceita apenas dois números antes e depois de um ponto Ex: 11.11 , 33.33, 13.30

String mask = “*U”
Aceita qualquer caracter e uma letra maiúscula  Ex: /L , L , [space]L

String mask = “Ul!”
Aceita uma letra maiúscula e uma Sequência de letras minúsculas Ex: David, Augusto

String mask = “M!@M!.P!”
Um e-mail Ex: davidaug23.7@gmail.com , themail@maildomain.co.uk