Spec-Zone.ru › OpenJDK 17

Класс 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, и формат parseObject возвращает экземпляр Number, соответствующий экземпляр класса значения будет создан с использованием конструктора, соответствующего примитивному типу, который представляет класс значения. Например: setValueClass(Integer.class) приведет к тому, что результирующее значение будет создано через Integer.valueOf(((Number)formatter.parseObject(string)).intValue()). Это обычно полезно, если вы хотите установить минимальное/максимальное значение, так как различные реализации Number обычно не сравнимы друг с другом. Это также полезно, если по какой-то причине вам нужна определенная реализация Number для ваших значений.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, использующими ту же версию Swing. Начиная с версии 1.4, поддержка долговременного хранения всех JavaBeans была добавлена в пакет java.beans. Пожалуйста, обратитесь к XMLEncoder.

Since:
1.4

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

Конструктор Описание
NumberFormatter()
Создаёт NumberFormatter с экземпляром по умолчанию NumberFormat полученный из NumberFormat.getNumberInstance().
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().

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

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/text/NumberFormatter.html

Spec-Zone.ru

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