使JFormattedTextField接受超过3位数的小数

时间:2013-02-14 14:09:50

标签: java swing jformattedtextfield

我有JFormattedTextField,应该能够接受超过3位十进制数的双数字。它接受条目0.10.010.001,但拒绝0.0001和更多十进制数字的数字。

这就是我的代码现在的工作方式:

DecimalFormat decimalFormat = new DecimalFormat("0.0E0");
JFormattedTextField txtfield = new JFormattedTextField(decimalFormat.getNumberInstance(Locale.getDefault()));

如何让我的文本字段接受超过3位十进制数的数字?

1 个答案:

答案 0 :(得分:7)

  

它接受条目0.1,0.01,0.001但拒绝0.0001和数字   更多十进制数字。

这应该可以在setMinimumFractionDigits(int) / NumberFormat setMaximumFractionDigits(int)setRoundingMode(RoundingMode.Xxx)和/或final JFormattedTextField textField1 = new JFormattedTextField(new Float(10.01)); textField1.setFormatterFactory(new AbstractFormatterFactory() { @Override public AbstractFormatter getFormatter(JFormattedTextField tf) { NumberFormat format = DecimalFormat.getInstance(); format.setMinimumFractionDigits(2); format.setMaximumFractionDigits(2); format.setRoundingMode(RoundingMode.HALF_UP); InternationalFormatter formatter = new InternationalFormatter(format); formatter.setAllowsInvalid(false); formatter.setMinimum(0.0); formatter.setMaximum(1000.00); return formatter; } }); } 设置,DecimalFormat (in your case)更多

例如

{{1}}