Класс InternationalFormatter
- Все реализованные интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
-
DateFormatter,NumberFormatter
public class InternationalFormatter extends DefaultFormatter
InternationalFormatter расширяет DefaultFormatter, используя экземпляр java.text.Format для обработки преобразования в строку и из строки. Если getAllowsInvalid() имеет значение false, это запросит Format отформатировать текущий текст при каждом изменении.
Вы можете указать минимальное и максимальное значения с помощью методов setMinimum и setMaximum. Для этого значения, возвращаемые stringToValue, должны быть сравнимы с минимальным и максимальным значениями с помощью интерфейса Comparable.
Будьте внимательны при настройке Format и InternationalFormatter, так как можно создать ситуацию, когда определённые значения нельзя ввести. Рассмотрим формат даты 'M/d/yy', InternationalFormatter, который всегда действителен (setAllowsInvalid(false)), находится в режиме перезаписи (setOverwriteMode(true)) и дату 7/1/99. В этом случае пользователь не сможет ввести двузначный месяц или число. Чтобы избежать этого, формат должен быть 'MM/dd/yy'.
Если InternationalFormatter настроено на разрешение только допустимых значений (setAllowsInvalid(false)), каждое допустимое изменение приведёт к полному сбросу текста JFormattedTextField от Format. Позиция курсора также будет скорректирована при добавлении/удалении символов из результирующей строки.
Поведение InternationalFormatter при stringToValue немного отличается от DefaultTextFormatter, оно выполняет следующее:
-
parseObjectвызывается наFormat, указанномsetFormat - Если для значений задан класс (
setValueClass), вызывается реализация суперкласса для преобразования значения, возвращённогоparseObject, в соответствующий класс. - Если не было брошено
ParseException, и значение находится вне минимального/максимального, выбрасываетсяParseException. - Значение возвращается.
InternationalFormatter реализует stringToValue таким образом, чтобы вы могли указать альтернативный класс, отличный от того, что может вернуть Format. Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans добавлена в пакет java.beans. Пожалуйста, обратитесь к XMLEncoder.
- С тех пор:
- 1.4
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
InternationalFormatter() |
Создаёт InternationalFormatter без указанного Format. |
InternationalFormatter |
Создаёт InternationalFormatter с указанным экземпляром Format. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создаёт копию DefaultFormatter. |
protected Action[] |
getActions() |
Если getSupportsIncrement возвращает true, это возвращает два Action, подходящие для увеличения/уменьшения значения. |
Format.Field[] |
getFields |
Возвращает константы Format.Field, связанные с текстом по адресу offset. |
Format |
getFormat() |
Возвращает формат, определяющий допустимые значения, которые можно редактировать и отображать. |
Comparable |
getMaximum() |
Возвращает максимальное допустимое значение. |
Comparable |
getMinimum() |
Возвращает минимальное допустимое значение. |
void |
install |
Устанавливает DefaultFormatter на конкретный JFormattedTextField. |
void |
setFormat |
Устанавливает формат, определяющий допустимые значения, которые можно редактировать и отображать. |
void |
setMaximum |
Устанавливает максимальное допустимое значение. |
void |
setMinimum |
Устанавливает минимальное допустимое значение. |
Object |
stringToValue |
Возвращает представление Object объекта String text. |
String |
valueToString |
Возвращает строковое представление объекта value. |
Методы, объявленные в классе javax.swing.text.DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
Методы, объявленные в классе javax.swing.JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall
Подробное описание конструкторов
InternationalFormatter
public InternationalFormatter()
InternationalFormatter без указанного Format.InternationalFormatter
public InternationalFormatter(Format format)
InternationalFormatter с указанным экземпляром Format.- Параметры:
-
format- Экземпляр формата, используемый для преобразования из/в строки
Подробное описание методов
setFormat
public void setFormat(Format format)
- Параметры:
-
format- ЭкземплярFormat, используемый для преобразования из/в строки
getFormat
public Format getFormat()
- Возвращает:
- Экземпляр формата, используемый для преобразования из/в строки
setMinimum
public void setMinimum(Comparable<?> minimum)
valueClass не задан, а minimum не равен null, то valueClass будет установлен для класса minimum.- Параметры:
-
minimum- Минимальное допустимое значение для ввода - См. также:
getMinimum
public Comparable<?> getMinimum()
- Возвращает:
- Минимальное допустимое значение для ввода
setMaximum
public void setMaximum(Comparable<?> max)
valueClass не задан, а max не равен null, то valueClass будет установлен для класса max.- Параметры:
-
max- Максимальное допустимое значение для ввода - См. также:
getMaximum
public Comparable<?> getMaximum()
- Возвращает:
- Максимальное допустимое значение для ввода
install
public void install(JFormattedTextField ftf)
DefaultFormatter на конкретное JFormattedTextField. Это вызовет valueToString для преобразования текущего значения из JFormattedTextField в строку. Затем будут установлены Action из getActions, DocumentFilter, возвращённое из getDocumentFilter, и NavigationFilter, возвращённое из getNavigationFilter, на JFormattedTextField. Подклассы обычно будут переопределять только этот метод, если они хотят установить дополнительные слушатели на JFormattedTextField.
Если при преобразовании текущего значения в строку возникает ошибка, это установит текст в пустую строку и отметит JFormattedTextField как находящийся в недопустимом состоянии.
Хотя это общедоступный метод, он обычно полезен только для подклассов JFormattedTextField. JFormattedTextField вызовет этот метод в соответствующие моменты, когда значение изменится или изменится его внутреннее состояние.
- Переопределяет:
-
installв классеDefaultFormatter - Параметры:
-
ftf- JFormattedTextField, для которого нужно выполнить форматирование. Может быть null, что указывает на удаление из текущего JFormattedTextField.
valueToString
public String valueToString(Object value) throws ParseException
value. Это вызывает format на текущем Format.- Переопределяет:
-
valueToStringв классеDefaultFormatter - Параметры:
-
value- Значение для преобразования - Возвращает:
- Строковое представление значения
- Исключения:
-
ParseException- если при преобразовании произошла ошибка
stringToValue
public Object stringToValue(String text) throws ParseException
Object текста String. Это text.- Переопределяет:
-
stringToValueв классеDefaultFormatter - Параметры:
-
text- Строка для преобразования - Возвращает:
-
Представление
Objectтекста - Исключения:
-
ParseException- если при преобразовании произошла ошибка
getFields
public Format.Field[] getFields(int offset)
Format.Field, связанные с текстом по позиции offset. Если offset не является допустимой позицией в текущем тексте, возвращает пустой массив.- Параметры:
-
offset- Смещение в тексте для проверки - Возвращает:
- Константы
Format.Field, связанные с текстом в заданной позиции.
clone
public Object clone() throws CloneNotSupportedException
- Переопределяет:
-
cloneв классеDefaultFormatter - Возвращает:
- Копию DefaultFormatter
- Исключения:
-
CloneNotSupportedException- если класс объекта не поддерживает интерфейсCloneable. Подклассы, переопределяющие методclone, также могут бросить это исключение, чтобы указать, что экземпляр нельзя клонировать. - См. также:
getActions
protected Action[] getActions()
getSupportsIncrement возвращает true, возвращает два объекта Action, подходящих для увеличения/уменьшения значения.- Переопределяет:
-
getActionsв классеJFormattedTextField.AbstractFormatter - Возвращает:
- Массив объектов Action для установки на JFormattedTextField
© 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/InternationalFormatter.html