gpt4 book ai didi

java - JFormattedTextField 值设置为 Float,掩码设置为 ##,##

转载 作者:行者123 更新时间:2023-12-02 06:27:04 26 4
gpt4 key购买 nike

是否可以将 JFormatterTextField 的 MaskFormatter 设置为 ##,## 并将 JFormatterTextField 的值类型设置为 Float?我尝试使用默认格式化程序工厂的以下掩码,但它不起作用,并且 getValue().getClass() 给了我 java.lang.String

DefaultFormatterFactory dff = new DefaultFormatterFactory();
mf = new MaskFormatter("##,##);
mf.setValueClass(Float.TYPE);
dff.setDefaultFormatter(mf);
field.setFormatterFactory(dff);

数字格式的问题是它没有为我屏蔽该字段。

PS。我的默认系统配置使用“,”作为“.”在英语中。所以这不是问题,我带它只是为了精确。

最佳答案

您在这里遇到了 JFormattedTextField 的一些限制。

如果使用 DecimalFormat http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html您可以将显示设置为您喜欢的外观,但它不会严格强制用户输入的内容。返回的结果将是一个数字。

如果您使用 MaskFormatter,那么您会得到严格的强制执行,但返回的值是一个字符串。

当您需要结果时,您可以使用 MaskFormatter 并将其简单地传递给 Float.valueOf(str) 。另一种方法是实现您自己的格式对象或监听文本字段和/或其支持文档提供的某些事件,并直接对用户输入进行自己的控制。

关于java - JFormattedTextField 值设置为 Float,掩码设置为 ##,##,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20425959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com