我想更改JSpinner的默认小数格式,指定小数位数但保留其他格式化区域设置。
但如果我这样做
@Test public void fails() {
JSpinner spinner = new JSpinner();
NumberEditor editor = new JSpinner.NumberEditor(spinner);
editor.getFormat().setMinimumFractionDigits(3);
spinner.setEditor(editor);
assertEquals(0, spinner.getValue());
assertEquals("0.000", ((NumberEditor) spinner.getEditor()).getTextField().getText());
// FAIL HERE with "0"
spinner.setValue(0.01);
assertEquals("0.010", ((NumberEditor) spinner.getEditor()).getTextField().getText());
}
正如我认为我在Sun示例代码中找到的那样,初始格式化值为“0”,因为尚未检测到格式的更改。
我可以明确设置格式图片
@Test public void delMe() {
JSpinner spinner = new JSpinner();
spinner.setEditor(new JSpinner.NumberEditor(spinner, "0.000"));
assertEquals(0, spinner.getValue());
assertEquals("0.000", ((NumberEditor) spinner.getEditor()).getTextField().getText());
}
但这不涉及逗号等语言环境设置。