Spec-Zone.ru › OpenJDK 27

Класс NumberFormatter

java.lang.Object
javax.swing.JFormattedTextField.AbstractFormatter
javax.swing.text.DefaultFormatter
javax.swing.text.InternationalFormatter
javax.swing.text.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(NumberFormat format)
Создаёт NumberFormatter с указанным экземпляром Format.

Краткое описание методов

Модификатор и тип Метод Описание
void setFormat(Format format)
Задаёт формат, определяющий допустимые значения, которые можно редактировать и отображать.

Методы, объявленные в классе InternationalFormatter

clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString
Модификатор и тип Метод Описание
Object clone()
Создаёт копию DefaultFormatter.
protected Action[] getActions()
Если getSupportsIncrement возвращает true, возвращает два действия, подходящих для увеличения/уменьшения значения.
Format.Field[] getFields(int offset)
Возвращает константы Format.Field, связанные с текстом в offset.
Format getFormat()
Возвращает формат, определяющий допустимые значения, которые можно редактировать и отображать.
Comparable<?> getMaximum()
Возвращает максимально допустимое значение.
Comparable<?> getMinimum()
Возвращает минимально допустимое значение.
void install(JFormattedTextField ftf)
Устанавливает DefaultFormatter для конкретного JFormattedTextField.
void setMaximum(Comparable<?> max)
Задаёт максимально допустимое значение.
void setMinimum(Comparable<?> minimum)
Задаёт минимально допустимое значение.
Object stringToValue(String text)
Возвращает представление Object для String text.
String valueToString(Object value)
Возвращает строковое представление объекта 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(boolean allowsInvalid)
Задаёт, разрешено ли редактируемому значению быть недопустимым в течение некоторого времени (то есть stringToValue выбрасывает ParseException).
void setCommitsOnValidEdit(boolean commit)
Задаёт, когда изменения публикуются обратно в JFormattedTextField.
void setOverwriteMode(boolean overwriteMode)
Настраивает поведение при вставке символов.
void setValueClass(Class<?> valueClass)
Задаёт класс, используемый для создания новых объектов.

Методы, объявленные в классе JFormattedTextField.AbstractFormatter

getFormattedTextField, invalidEdit, setEditValid, uninstall
Модификатор и тип Метод Описание
protected JFormattedTextField getFormattedTextField()
Возвращает текущий JFormattedTextField, на котором установлен AbstractFormatter.
protected void invalidEdit()
Этот метод следует вызывать, когда пользователь вводит недопустимый символ.
protected void setEditValid(boolean valid)
Вызовите этот метод, чтобы обновить свойство editValid объекта JFormattedTextField.
void uninstall()
Удаляет любое состояние, которое AbstractFormatter мог установить для JFormattedTextField.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

NumberFormatter

public NumberFormatter()
Создаёт NumberFormatter с экземпляром NumberFormat по умолчанию, полученным из NumberFormat.getNumberInstance().

NumberFormatter

public NumberFormatter(NumberFormat format)
Создаёт NumberFormatter с указанным экземпляром Format.
Параметры:
format — формат, используемый для определения допустимых значений

Подробное описание методов

setFormat

public void setFormat(Format format)
Задаёт формат, определяющий допустимые значения, которые можно редактировать и отображать.

Если использовался конструктор без аргументов, значение этого свойства будет определяться для текущей локали с помощью метода NumberFormat.getNumberInstance().

Переопределяет:
setFormat в классе InternationalFormatter
Параметры:
format — экземпляр NumberFormat, используемый для определения допустимых значений

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API