我有一个JFormattedTextField
它应该能够接受超过 3 位小数的双数。它接受条目0.1
, 0.01
, 0.001
但拒绝0.0001
以及具有更多小数位的数字。
这就是我的代码现在的工作方式:
DecimalFormat decimalFormat = new DecimalFormat("0.0E0");
JFormattedTextField txtfield = new JFormattedTextField(decimalFormat.getNumberInstance(Locale.getDefault()));
如何让我的文本字段接受超过 3 位小数的数字?
它接受条目 0.1、0.01、0.001,但拒绝 0.0001 和数字
有更多的小数位。
这应该可以设置在数字格式 / DecimalFormat(根据您的情况) by setMinimumFractionDigits(int)
, setMaximumFractionDigits(int)
和/或与setRoundingMode(RoundingMode.Xxx)
,更多在Oracle 关于格式化的教程
例如
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;
}
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)