Класс 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(java.lang.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, поддержка долгосрочного хранения всех JavaBeans была добавлена в пакет java.beans. См. XMLEncoder.
- С:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
NumberFormatter() |
Создаёт NumberFormatter с экземпляром по умолчанию NumberFormat, полученным из NumberFormat.getNumberInstance(). |
NumberFormatter |
Создаёт NumberFormatter с указанным экземпляром Format. |
Краткое описание методов
Методы, объявленные в классе javax.swing.text.InternationalFormatter
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString
Методы, объявленные в классе javax.swing.text.DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
Методы, объявленные в классе javax.swing.JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall
Подробное описание конструкторов
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/text/NumberFormatter.html