我有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 :(得分: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)更多{ p>
例如
{{1}}