当前位置: 首页 > 知识库问答 >
问题:

仅接受数字的文本字段

司徒浩思
2023-03-14

注意:下面我讨论的文本字段是一个MFXTextField,我从MaterialFX获得。

我已经搜索了很多关于如何在JavaFX中创建只接受数字的文本字段的内容。我发现了很多视频和帖子,但它们都不适合我,可能是因为它们太老了,只在过去工作过,我真的不知道。

所以,我有一个信用卡文本字段,我需要它来拒绝字母或数字以外的任何内容。这是我的文本字段:

下面是我的代码,它为常规TextField接受TextFormatter,为MFXTextField拒绝:

        UnaryOperator<TextFormatter.Change> integerFilter = change -> {
            String newText = change.getControlNewText();
            if (newText.matches("-?([1-9][0-9]*)?")) {
                return change;
            }
            return null;
        };

        NormalTextField.setTextFormatter(
                new TextFormatter<>(new IntegerStringConverter(), null, integerFilter));

        CheckTextField.setTextFormatter(
                new TextFormatter<>(new IntegerStringConverter(), null, integerFilter));

共有1个答案

卫沈义
2023-03-14

问题解决了。我所要做的就是将setTextFor事体替换为委托SetTextFor事体,这是新代码:

        UnaryOperator<TextFormatter.Change> integerFilter = change -> {
            String newText = change.getControlNewText();
            if (newText.matches("-?([1-9][0-9]*)?")) {
                return change;
            }
            return null;
        };

        MFXTextField.delegateSetTextFormatter(
                new TextFormatter<Integer>(new IntegerStringConverter(), null, integerFilter));
 类似资料:
  • 我需要一个React Native组件,它只允许输入数字字符(0-9)。我可以将设置为,这几乎可以让我在那里输入,除了句点()。但是,这并不能阻止将非数字字符粘贴到字段中。 到目前为止,我想出的是使用事件来查看输入的文本。我从文本中删除任何非数字字符。然后将文本放在状态字段中。然后通过它的值属性更新。代码片段如下。 这似乎工作,但它似乎像一个黑客。还有别的办法吗?

  • 我有一个文本字段,我只接受键盘上的数字,但现在我必须更改它,因为它是“价格文本字段”,我还需要接受一个点”。“对于任何价格。 我怎样才能改变这个以得到我需要的?

  • 当我尝试对输入进行限制时,我在java中遇到了很多麻烦。在此示例中,我需要字符串代码仅接受和等符号。我如何检查以确保没有数字、字母或其他符号?谢谢

  • 下面是关于如何限制字符输入长度的代码 可以通过

  • 我创建了以下正则表达式: 它应该接受字母数字、空格和撇号。输入应至少为1个字符,最多为24个字符。但它也只接受带撇号和空格的输入(例如,

  • 问题内容: 我希望用户仅输入字母或空格(如果用户输入其他字符),我想给jOptionPane消息,我已经搜索过,并且尝试了以下代码 但是现在无论我输入什么都会给出错误 现在我更改了代码 现在它仅在用户输入数字时发出消息。我该如何解决 问题答案: 使用一个,这是我制作的一个示例,它将仅接受字母字符和空格: