Как мне отформатировать начальное значение с помощью JSpinner? - PullRequest
1 голос
/ 24 ноября 2010

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

но это не относится к настройкам локали в отношении запятых и т. Д.

...