Класс InternationalFormatter
- Все реализованные интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
-
DateFormatter,NumberFormatter
public class InternationalFormatter extends DefaultFormatter
InternationalFormatter расширяет DefaultFormatter, используя экземпляр java.text.Format для обработки преобразования в строку и из строки. Если getAllowsInvalid() ложно, это попросит 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), вызывается реализация supers для преобразования значения, возвращённого изparseObject, в соответствующий класс. - Если не было выброшено
ParseException, и значение находится за пределами min/max, выбрасывается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- Экземпляр формата, используемый для преобразования из/в строки
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 - Возвращает:
- Массив Actions для установки на JFormattedTextField
© 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/text/InternationalFormatter.html