2

我将如何制作一个java.text.NumberFormat只允许正整数的实例?

实际上,如果它只允许从 1 开始就好了。

文档说正/负的格式除以“;” 字符,但没有在否定格式中放置任何内容,或者根本不使用“;” 不会禁用负数。

这些显然不会这样做:

NumberFormat nf = new DecimalFormat("#;");
// or
NumberFormat nf = new DecimalFormat("#");
// or
NumberFormat nf = new DecimalFormat("#;0");
4

2 回答 2

2

另一种方法是创建您自己的 NumberFormat,它使用 DecimalFormat 从字符串转换为整数,然后对生成的整数应用任何限制。

于 2014-10-28T06:21:07.527 回答
0

原来jfxtras BigDecimalField (链接到 Javadocs)有一种方法来设置允许的最小值。这与仅允许整数的 NumberFormat 相结合,允许我创建一个仅接受大于或等于 1 的整数的字段。

bigDecimalFld.setFormat( new DecimalFormat( "#;" ) );
bigDecimalFld.setMinValue( new BigDecimal( 1 ) );
于 2014-10-27T21:34:24.623 回答