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

无法在addListener上的Textfield上设置文本

澹台衡
2023-03-14

输入示例:12345.1

期望输出总计金额DueTextField: 12,345.10

TextField totalAmountDueTextField = new TextField("0.00");
Pattern validDoubleText = Pattern.compile("-?\\d*(\\.\\d{0,2})?"); 
TextFormatter<Double> textFormatter = new TextFormatter<>(new DoubleStringConverter(), 0.00, 
        change -> {
            String newText = change.getControlNewText() ;
            if (validDoubleText.matcher(newText).matches()) {
                return change ;
            } else return null ;
        });
totalAmountDueTextField.setTextFormatter(textFormatter)

totalAmountDueTextField.focusedProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue o, Object oldVal, Object newVal) {
            DecimalFormat format = new DecimalFormat("#,##0.00");
            String formattedText = format.format(Double.parseDouble(totalAmountDueTextField.getText()));     
            System.out.println(formattedText);
            totalAmountDueTextField.setText(formattedText);
        }
    });

实际结果

系统出来println(格式化文本):12345.10//OK

totalAmountDueTextField。setText(formattedText):12345.1//这就是问题所在。

以及如何将初始值设置为0.00(当前为0.0)?

共有1个答案

鲜于德业
2023-03-14

用这个可能对你有帮助

总金额DueTextField.set文本(新的BigDecimal(总金额DueTextField.get文本())。地板));

 类似资料:
  • 运行时运行case 0时,我一直收到java.lang.NullPointerException。该问题似乎与设置TextField的提示文本有关。但是,当我切换选项卡时,问题不会返回。GUI是在Scene Builder中构建的。如何将TextField初始化为非空值。 这是准确的错误代码 我的FXML文件 FXML文件确实附加了正确的控制器

  • 问题内容: 我有一个这样的表: 在ajax请求之后,有一个方法向我返回了以下内容: 我想像这样更改innerHTML 但是,似乎IE无法在上设置innerHTML 。谁能为我提供一个解决此问题的简单方法? 问题答案: 没错,tbody元素上的innerHTML在IE中是readOnly 对于除以下对象以外的所有对象,该属性均为可读/写状态;对于以下对象,该属性为只读:COL,COLGROUP,FR

  • 我正在尝试制作一个flutter应用程序,收集一些学生数据并将其存储到firestore。我想在名为users的集合中添加有关用户的文档,并在具有自定义id(如uid)的文档中添加有关用户的文档。 我面临的问题是,我无法在这样一个既不存在特定文档也不存在集合的文档上设置数据。现在,这实际上不是问题的原因,因为它在使用云firestore的JavaScript库时起作用。 我的依赖: 迄今为止的代码

  • 我已经使用SpringWebFlux版本2.3.0编写了一个反应式API。发布Reactornetty版本0.9.10。作为API SLA的一部分,如果服务器执行的WriteTimeout超过了规定的配置,我想让请求超时。 分享下面截取的代码,我在这里为NettyReactiveWebServerFactory实现了一个定制器。 尽管有定制器,WriteTimeout仍不能用于API。

  • 我是一个新的git和GitHub用户。我已经在Windows上使用GitHub一段时间了,但想尝试更多的命令行,同时学习如何在我想要改进的存储库上分叉和提交拉取请求。 我所看到的是,“上游”似乎被定义为不可用,我想了解发生了什么。我想当我想请求将我的更改拉入上游存储库时,这将是一个问题。 我在GitHub上分叉了存储库,然后将其克隆到我的计算机上: git克隆https://github.com/

  • 您好,我遵循了在windows上设置React本机项目的官方文档。我在location中添加了ANDROID_HOME变量作为系统变量 在第二步中,我应该在 “C:\Android\tools\bin\platform tools” 但是Android中没有tools文件夹,我发现SDK下的平台工具就在下面 "C:\用户\AKSHAY\AppData\本地\Android\SDK\平台工具" 现在