Заполнение нулем счетчика в Java
Вопрос
Как вы добавляете нулевое заполнение к JSpinner
?
Поскольку счетчик создает JFormattedTextField
сам по себе, я не могу просто передать формат в конструктор JFormattedTextField.
Разве нет способа установить форматирование на существующем JFormattedTextField
?
Чего я хочу:значение = 37, редактор = "0037"
Обновить:
Я попробовал это, как было предложено:
JSpinner mySpinner = new JSpinner();
mySpinner.setEditor(
new JSpinner.NumberEditor(mySpinner, "####"));
и результатом является отсутствие каких-либо изменений в представлении данных счетчика.Это кажется разумным решением;кто-нибудь успешно пробовал это, чтобы я мог быть уверен, что это просто что-то неровное в моем собственном приложении?
Решение
Ты можешь установите редактор себя, вот так:
// minimum of four digits
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner, "0000"));
"0000"
является DecimalFormat
строка, указывающая четыре цифры, при необходимости дополняемые нулем; "####"
указывает четыре цифры, но не вводит нуль.
В DecimalFormat
Документация API более подробно описывает строки форматирования.
Другие советы
Ссылаясь на javadocs, JSpinner имеет setEditor(JComponent) - редактор настроек (JComponent) способ.Используйте это, чтобы установить свое пользовательское JFormattedTextField с его пользовательским форматом.