Класс NumberFormatter
- Все реализуемые интерфейсы:
Serializable, Cloneable
public class NumberFormatter extends InternationalFormatter
NumberFormatter подклассы InternationalFormatter, добавляющие особое поведение для чисел. К таким особенностям относятся (они используются только в том случае, если NumberFormatter не отображает недопустимые числа, например, setAllowsInvalid(false)): - Нажатие +/- (символ - определяется по
DecimalFormatSymbols, связанному сDecimalFormat) в любом поле, кроме поля экспоненты, попытается изменить знак числа на положительный/отрицательный. - Нажатие +/- (символ - определяется по
DecimalFormatSymbols, связанному сDecimalFormat) в поле экспоненты попытается изменить знак экспоненты на положительный/отрицательный.
Если вы отображаете числа в экспоненциальной записи, возможно, вам следует включить режим перезаписи, setOverwriteMode(true). Например:
DecimalFormat decimalFormat = new DecimalFormat("0.000E0");
NumberFormatter textFormatter = new NumberFormatter(decimalFormat);
textFormatter.setOverwriteMode(true);
textFormatter.setAllowsInvalid(false);
Если вы собираетесь разрешить пользователю вводить десятичные значения, следует либо обеспечить наличие в DecimalFormat хотя бы одного десятичного разделителя (#.0###), либо разрешить недопустимое значение setAllowsInvalid(true). В противном случае пользователи могут не иметь возможности вводить десятичные значения.
NumberFormatter обеспечивает для stringToValue несколько иное поведение, чем его суперкласс. Если вы указали класс для значений с помощью DefaultFormatter.setValueClass(Class), который является одним из Integer, Long, Float, Double, Byte или Short, и метод parseObject формата возвращает экземпляр Number, соответствующий экземпляр класса значения будет создан с помощью конструктора, соответствующего примитивному типу, который представляет класс значения. Например: setValueClass(Integer.class) приведёт к созданию результирующего значения с помощью Integer.valueOf(((Number)formatter.parseObject(string)).intValue()). Обычно это полезно, если требуется задать минимальное или максимальное значение, поскольку различные реализации Number, как правило, нельзя сравнивать друг с другом. Это также полезно, если по какой-либо причине для значений требуется конкретная реализация Number.
Предупреждение: сериализованные объекты этого класса будут несовместимы с будущими выпусками Swing. Текущая поддержка сериализации предназначена для краткосрочного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, в пакет java.beans добавлена поддержка долгосрочного хранения всех JavaBeans. См. XMLEncoder.
- С момента выпуска:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
NumberFormatter() |
Создаёт NumberFormatter с экземпляром NumberFormat по умолчанию, полученным из NumberFormat.getNumberInstance(). |
NumberFormatter |
Создаёт NumberFormatter с указанным экземпляром Format. |
Краткое описание методов
Методы, объявленные в классе InternationalFormatter
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString | Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создаёт копию DefaultFormatter. |
protected Action[] |
getActions() |
Если getSupportsIncrement возвращает true, возвращает два действия, подходящих для увеличения/уменьшения значения. |
Format.Field[] |
getFields |
Возвращает константы Format.Field, связанные с текстом в offset. |
Format |
getFormat() |
Возвращает формат, определяющий допустимые значения, которые можно редактировать и отображать. |
Comparable |
getMaximum() |
Возвращает максимально допустимое значение. |
Comparable |
getMinimum() |
Возвращает минимально допустимое значение. |
void |
install |
Устанавливает DefaultFormatter для конкретного JFormattedTextField. |
void |
setMaximum |
Задаёт максимально допустимое значение. |
void |
setMinimum |
Задаёт минимально допустимое значение. |
Object |
stringToValue |
Возвращает представление Object для String text. |
String |
valueToString |
Возвращает строковое представление объекта value. |
Методы, объявленные в классе DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
getAllowsInvalid() |
Возвращает, разрешено ли редактируемому значению быть недопустимым в течение некоторого времени. |
boolean |
getCommitsOnValidEdit() |
Возвращает, когда изменения публикуются обратно в JFormattedTextField. |
protected DocumentFilter |
getDocumentFilter() |
Возвращает DocumentFilter, используемый для ограничения символов, которые можно вводить в JFormattedTextField. |
protected NavigationFilter |
getNavigationFilter() |
Возвращает NavigationFilter, используемый для ограничения положения курсора. |
boolean |
getOverwriteMode() |
Возвращает поведение при вставке символов. |
Class |
getValueClass() |
Возвращает класс, используемый для создания новых объектов. |
void |
setAllowsInvalid |
Задаёт, разрешено ли редактируемому значению быть недопустимым в течение некоторого времени (то есть stringToValue выбрасывает ParseException). |
void |
setCommitsOnValidEdit |
Задаёт, когда изменения публикуются обратно в JFormattedTextField. |
void |
setOverwriteMode |
Настраивает поведение при вставке символов. |
void |
setValueClass |
Задаёт класс, используемый для создания новых объектов. |
Методы, объявленные в классе JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall | Модификатор и тип | Метод | Описание |
|---|---|---|
protected JFormattedTextField |
getFormattedTextField() |
Возвращает текущий JFormattedTextField, на котором установлен AbstractFormatter. |
protected void |
invalidEdit() |
Этот метод следует вызывать, когда пользователь вводит недопустимый символ. |
protected void |
setEditValid |
Вызовите этот метод, чтобы обновить свойство editValid объекта JFormattedTextField. |
void |
uninstall() |
Удаляет любое состояние, которое AbstractFormatter мог установить для JFormattedTextField. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и может быть удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
NumberFormatter
public NumberFormatter()
NumberFormatter с экземпляром NumberFormat по умолчанию, полученным из NumberFormat.getNumberInstance().NumberFormatter
public NumberFormatter(NumberFormat format)
- Параметры:
-
format— формат, используемый для определения допустимых значений
Подробное описание методов
setFormat
public void setFormat(Format format)
Если использовался конструктор без аргументов, значение этого свойства будет определяться для текущей локали с помощью метода NumberFormat.getNumberInstance().
- Переопределяет:
-
setFormatв классеInternationalFormatter - Параметры:
-
format— экземпляр NumberFormat, используемый для определения допустимых значений
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.