Обнуление спиннера в Java

Как вы добавляете нулевое заполнение к JSpinner?
Поскольку спиннер создает JFormattedTextField Сам я не могу просто передать формат в конструктор JFormattedTextField.
Разве нет способа установить форматирование на существующий JFormattedTextField?

Что я хочу: значение = 37, редактор = "0037"

ОБНОВИТЬ:
Я попробовал это как предложено:

JSpinner mySpinner = new JSpinner();  
mySpinner.setEditor(  
    new JSpinner.NumberEditor(mySpinner, "####"));  

и результат совершенно не меняется в представлении данных счетчика. Это кажется разумным решением; кто-нибудь пробовал это успешно, так что я могу быть уверен, что это просто что-то нехорошее в моем приложении

2 ответа

Решение

Вы можете установить редактор самостоятельно, например так:

// minimum of four digits
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner, "0000"));

"0000" это DecimalFormat строка, указывающая четыре цифры, дополненные нулями по мере необходимости; "####" указывает четыре цифры, но не вводит ноль.

DecimalFormat Документация API описывает строки форматирования более подробно.

Ссылаясь на javadocs, JSpinner имеет метод setEditor(JComponent). Используйте это, чтобы установить свой пользовательский JFormattedTextField с его пользовательским форматом.

Другие вопросы по тегам