Класс 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
Методы, объявленные в классе DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
Методы, объявленные в классе JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall
Подробное описание конструкторов
NumberFormatter
public NumberFormatter()
NumberFormatter с экземпляром NumberFormat по умолчанию, полученным из NumberFormat.getNumberInstance().NumberFormatter
public NumberFormatter(NumberFormat format)
- Параметры:
-
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/NumberFormatter.html