Класс InternationalFormatter
- java.lang.Object
-
- javax.swing.JFormattedTextField.AbstractFormatter
-
- javax.swing.text.DefaultFormatter
-
- javax.swing.text.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), реализация суперкласса вызывается для преобразования значения, возвращенногоparseObject, в соответствующий класс. - Если исключение
ParseExceptionне произошло, и значение находится вне диапазона мин/макс, выбрасывается исключениеParseException. - Значение возвращается.
InternationalFormatter реализует stringToValue таким образом, чтобы вы могли указать альтернативный класс, отличный от Format, который может вернуть Format. Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. С версии 1.4 добавлена поддержка долгосрочного хранения всех JavaBeans™ в пакете java.beans. См. XMLEncoder.
- С:
- 1.4
- См. также:
-
Format,Comparable, Сериализованная форма
Конструкторы
| Конструктор | Описание |
|---|---|
InternationalFormatter() | Создает |
InternationalFormatter(Format format) | Создает |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object | clone() | Создает копию DefaultFormatter. |
protected Action[] | getActions() | Если |
Format.Field[] | getFields(int offset) | Возвращает |
Format | getFormat() | Возвращает формат, определяющий допустимые значения, которые могут быть отредактированы и отображены. |
Comparable<?> | getMaximum() | Возвращает максимальное допустимое значение. |
Comparable<?> | getMinimum() | Возвращает минимальное допустимое значение. |
void | install(JFormattedTextField ftf) | Устанавливает |
void | setFormat(Format format) | Устанавливает формат, определяющий допустимые значения, которые могут быть отредактированы и отображены. |
void | setMaximum(Comparable<?> max) | Устанавливает максимальное допустимое значение. |
void | setMinimum(Comparable<?> minimum) | Устанавливает минимальное допустимое значение. |
Object | stringToValue(String text) | Возвращает строковое представление |
String | valueToString(Object value) | Возвращает строковое представление объекта |
Методы, объявленные в классе 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 Конструкторы
InternationalFormatter
public InternationalFormatter()
Создаёт InternationalFormatter без указанного Format.
InternationalFormatter
public InternationalFormatter(Format format)
Создаёт InternationalFormatter с указанным экземпляром Format.
- Параметры:
-
format- Экземпляр Format для преобразования из/в строки
Методы
setFormat
public void setFormat(Format format)
Устанавливает формат, определяющий допустимые значения, которые можно редактировать и отображать.
- Параметры:
-
format- ЭкземплярFormatдля преобразования из/в строки
getFormat
public Format getFormat()
Возвращает формат, определяющий допустимые значения, которые можно редактировать и отображать.
- Возвращает:
- Экземпляр Format для преобразования из/в строки
setMinimum
public void setMinimum(Comparable<?> minimum)
Устанавливает минимальное допустимое значение. Если минимальное значение не было указано, а minimum не null, то минимальное значение будет установлено для класса minimum.
- Параметры:
-
minimum- Минимальное допустимое входное значение - См. также:
DefaultFormatter.setValueClass(java.lang.Class<?>)
getMinimum
public Comparable<?> getMinimum()
Возвращает минимальное допустимое значение.
- Возвращает:
- Минимальное допустимое входное значение
setMaximum
public void setMaximum(Comparable<?> max)
Устанавливает максимальное допустимое значение. Если максимальное значение не было указано, а max не null, то максимальное значение будет установлено для класса max.
- Параметры:
-
max- Максимальное допустимое входное значение - См. также:
DefaultFormatter.setValueClass(java.lang.Class<?>)
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 Создаёт копию DefaultFormatter.
- Переопределяет:
-
cloneв классеDefaultFormatter - Возвращает:
- копию DefaultFormatter
- Исключения:
-
CloneNotSupportedException- если класс объекта не поддерживает интерфейсCloneableПодклассы, переопределяющие методclone, также могут выбросить это исключение, чтобы указать, что экземпляр не может быть скопирован. - См. также:
Cloneable
getActions
protected Action[] getActions()
Если getSupportsIncrement возвращает true, возвращает два Action, подходящих для увеличения/уменьшения значения.
- Переопределяет:
-
getActionsв классеJFormattedTextField.AbstractFormatter - Возвращает:
- Массив Action для установки на JFormattedTextField
© 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/InternationalFormatter.html