Spec-Zone.ru › OpenJDK 25

Класс 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

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

getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass

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

getFormattedTextField, invalidEdit, setEditValid, uninstall

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

NumberFormatter

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

NumberFormatter

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

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

setFormat

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/NumberFormatter.html

Spec-Zone.ru

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