屏蔽javafx文本字段输入

时间:2019-07-05 20:09:23

标签: java javafx javafx-8

我正在使用javafx文本字段。我需要输入数字以及应与###。###。###。###
格式匹配的小数 小数点根本不可编辑,并且数字可以是任何数字;不允许其他输入。并非所有数字占位符都需要填写,例如它可能是1.2或2.22.1甚至是1.222.222.0

我已经尝试过将模式匹配与正则表达式一起使用来验证更改后的文本,但这就是它的全部;它会验证输入,不会使小数字段成为不可编辑的字段,并且不能提供工具提示。我不确定还有什么尝试。

我正在尝试寻找一种方法,以便即使在用户键入内容时,他们也可以看到预期的输入内容,例如1 ##。###。###。###。当他们输入数字时,他们不会输入小数,因为在文本字段中“小数”是固定的,或者至少是。如果接收到连续数字输入,则键入的数字在遇到小数时将跳过小数,并自动转到下一个字段。 例如用户输入=“ 1234” 输出=“ 123.4 ##。###。###”

另一个建议是在收到小数时自动使光标前进 例如用户输入=“ 1.23.4” 输出=“ 001.023.004。###”

欢迎提出任何建议,为澄清起见,“#”是文本字段“提示”的一部分,而不是实际文本的一部分。

1 个答案:

答案 0 :(得分:1)

最后,将UnaryOperator与regex一起用于输入控制和StringCoversion来发布过程文本,如此处How to force a double input in a TextField in JavaFX?所用,以防其他人遇到此问题。