Класс 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(java.lang.Class<?>), который является одним из Integer, Long, Float, Double, Byte или Short, и Format's 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 format) |
Создает NumberFormatter с указанным экземпляром Format. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
setFormat(Format 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
Методы, объявленные в классе java.lang.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- Используемый формат для определения допустимых значений
Методы
setFormat
public void setFormat(Format format)
Устанавливает формат, определяющий допустимые значения, которые могут быть отредактированы и отображены.
Если вы использовали конструктор без аргументов, значение этого свойства будет определяться для текущего языка с помощью метода NumberFormat.getNumberInstance().
- Переопределяет:
-
setFormatв классеInternationalFormatter - Параметры:
-
format- Экземпляр NumberFormat, используемый для определения допустимых значений
© 1993, 2020, 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/11/docs/api/java.desktop/javax/swing/text/NumberFormatter.html