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

Java8 U40 TextFor质(JavaFX)限制用户输入十进制数

施念
2023-03-14

我正在寻找一个示例,使用Java8 u40的新类TextFor质将用户输入限制为只有数字和小数点。http://download.java.net/jdk9/jfxdocs/javafx/scene/control/TextFormatter.Change.html

共有1个答案

孙洋
2023-03-14

请看这个例子:

DecimalFormat format = new DecimalFormat( "#.0" );

TextField field = new TextField();
field.setTextFormatter( new TextFormatter<>(c ->
{
    if ( c.getControlNewText().isEmpty() )
    {
        return c;
    }

    ParsePosition parsePosition = new ParsePosition( 0 );
    Object object = format.parse( c.getControlNewText(), parsePosition );

    if ( object == null || parsePosition.getIndex() < c.getControlNewText().length() )
    {
        return null;
    }
    else
    {
        return c;
    }
}));

>

要理解if语句,请参阅DecimalFormat parse(字符串文本,ParsePosition pos)。

 类似资料:
  • 问题内容: 我已经找到了很多关于如何在Objective-C中执行此操作的指南,但是我希望看到一种更加面向Swift的方法。 我有一个UITextField,用户可以在其中输入货币价格。文本字段将调用小数键盘。但是,在iPad上,出现的键盘具有整个范围的非十进制符号。 基本上,对于每一次按键,我都希望不可能在该字段中键入非数字或超出单个小数的任何内容。如果键入了一个十进制,我想使其不可能输入第二个

  • 用户用十六进制或二进制输入一个数字(必须以0x或0b为前缀,如果没有给出错误信息) 我不能用基数,我只是用整数。parseInt(s) 我不知道怎样才能使这个计划奏效。。请帮帮我,我还缺什么?

  • 我有一个用户输入框,用户可以在其中键入美元货币的金额。当用户输入小数点以表示0.24美分(例如0.24美分)时,当输入为.244或.240时,该值显示为0.20而不是.24美分。我希望用户能够只输入0.24美分,而不必输入额外的小数。

  • 我已经在网上搜索了,我发现所有的都是使用DecimalFormat并尝试了它,但当我在Android Studio上编码时,出现了一条消息,说必须使用API24来执行这种命令。API24有错误和所有的网站,我看,建议使用API23。 因此,我需要一种方法来显示双数字,只有两个十进制数字在我的AlertDialog。

  • 我必须为赋值创建二进制到十进制的数字转换器。这项任务有一些限制。它们是:1。没有无限循环2。中断语句以退出循环3。没有标签或转到语句4。不使用整数。parseInt(字符串s,整数基数) 我得到了部分转换下来,但我有异常处理的问题。我试图在输入不是二进制时显示错误消息,并继续允许用户输入,每次无效的尝试都显示相同的错误消息。 我曾尝试用while和do-while循环替换for循环,但结果对我来说