Обнуление блесны в Java - PullRequest
3 голосов
/ 09 июня 2009

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

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

UPDATE:
Я попробовал это как предложено:

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

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

Ответы [ 2 ]

5 голосов
/ 10 июня 2009

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

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

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

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

0 голосов
/ 10 июня 2009

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

...