我在 Java SE 应用程序中使用 BigDecimal 来表示产品价格。
我应该使用什么摆动组件以允许用户输入只有两位小数的数字并将其绑定到 BigDecimal 变量/对象的属性。(在用户输入时检查)?
我一直在玩 JTextField、JFormattedTextField、NumberFormatter、MaskFormatter,但我无法解决。
这些组件是否有任何组合和配置可以做到这一点?还是我应该扩展 MaskFormatter、JTextField、...?
我在 Java SE 应用程序中使用 BigDecimal 来表示产品价格。
我应该使用什么摆动组件以允许用户输入只有两位小数的数字并将其绑定到 BigDecimal 变量/对象的属性。(在用户输入时检查)?
我一直在玩 JTextField、JFormattedTextField、NumberFormatter、MaskFormatter,但我无法解决。
这些组件是否有任何组合和配置可以做到这一点?还是我应该扩展 MaskFormatter、JTextField、...?
我讨厌在东西上删除这些非常古老的线程,但我的理解是 StackOverflow 每天都在里面哭泣,答案仍然没有得到解决。
所以你可以在这里签出代码:http ://www.java2s.com/Code/Java/Swing-JFC/ABigDecimalobjectcustomformatter.htm
基本上设置为 JFormattedTextField 以使用 DecimalFormat
我不太确定您要做什么,但是有一个 BigDecimal 构造函数,它将字符串作为参数(类似于 eg Double.parseDouble(String s)
):
try
{
BigDecimal decimal = new BigDecimal(yourJTextField.getText());
}
catch (NumberFormatException nfe)
{ /* error handling */}
有关更多信息,请参阅BigDecimal的 JavaDoc。
编辑:如果检查/验证用户对文本字段的输入,请手动检查或使用验证器(请参阅“JTextField Validator”的 Google 结果)