Я хочу изменить десятичный формат по умолчанию для 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());
}
но это не относится к настройкам локали в отношении запятых и т. Д.