Маскировка ввода текстового поля javafx - PullRequest
2 голосов
/ 05 июля 2019

Я использую текстовое поле javafx.Мне нужно ввести числа вместе с десятичными числами, которые должны соответствовать формату ###. ###. ###. ###
, где десятичные числа вообще не должны редактироваться, а числа могут быть любыми цифрами;другие входы запрещены.Не все заполнители цифр необходимо заполнять, например, это может быть 1.2 или 2.22.1 или даже 1.222.222.0

Я пытался использовать сопоставление с шаблоном с регулярным выражением для проверки измененного текста, но это все, что он делает;он проверяет ввод, он не делает десятичное поле недоступным для редактирования полем, и всплывающая подсказка не является опцией.Я не уверен, что еще попробовать.

Я пытаюсь найти способ, чтобы, даже когда пользователи вводят текст, они могли видеть ожидаемый ввод, например, 1 ##. ###. ###. ###.Когда они вводят числа, они не вводят десятичную дробь, поскольку она «фиксирована» в текстовом поле или, по крайней мере, выглядит так.Если получен непрерывный ввод чисел, набранные числа пропускают десятичную дробь, когда встречаются, и автоматически переходят в следующее поле.например, пользовательский ввод = "1234" output = "123.4 ##. ###. ###"

другим предложением будет автоматическое продвижение курсора при получении десятичной дроби, например, пользовательский ввод = "1.23.4"output =" 001.023.004. ### "

Любые и все предложения приветствуются, и просто для пояснения" # "является частью текстового поля" подсказка ", а не частью фактического текста.

1 Ответ

1 голос
/ 10 июля 2019

В конце концов, использовали UnaryOperator с регулярным выражением для управления вводом и StringCoversion для публикации текста процесса, как здесь Как заставить двойной ввод в TextField в JavaFX? на случай, если кто-нибудь еще столкнется с этой проблемой.

...