Класс DefaultFormatter
- Все реализованные интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
-
InternationalFormatter,MaskFormatter
public class DefaultFormatter extends JFormattedTextField.AbstractFormatter implements Cloneable, Serializable
DefaultFormatter форматирует произвольные объекты. Форматирование выполняется путём вызова метода toString. Для преобразования значения обратно в строку, ваш класс должен предоставить конструктор, принимающий строковый аргумент. Если не найден конструктор с единственным строковым аргументом, возвращаемое значение будет строкой, переданной в stringToValue. Экземпляры DefaultFormatter не могут быть использованы в нескольких экземплярах JFormattedTextField. Для получения копии уже настроенного DefaultFormatter, используйте метод clone.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans была добавлена в пакет java.beans. Пожалуйста, обратитесь к XMLEncoder.
- С тех пор:
- 1.4
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DefaultFormatter() |
Создаёт DefaultFormatter. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создаёт копию DefaultFormatter. |
boolean |
getAllowsInvalid() |
Возвращает, разрешено ли значение, редактируемое в данный момент, быть невалидным в течение некоторого времени. |
boolean |
getCommitsOnValidEdit() |
Возвращает момент публикации изменений обратно в JFormattedTextField. |
protected DocumentFilter |
getDocumentFilter() |
Возвращает DocumentFilter, используемый для ограничения символов, которые могут быть введены в JFormattedTextField. |
protected NavigationFilter |
getNavigationFilter() |
Возвращает NavigationFilter, используемый для ограничения позиций курсора. |
boolean |
getOverwriteMode() |
Возвращает поведение при вставке символов. |
Class<?> |
getValueClass() |
Возвращает класс, используемый для создания новых объектов. |
void |
install |
Устанавливает DefaultFormatter на определённый JFormattedTextField. |
void |
setAllowsInvalid |
Устанавливает, разрешено ли значение, редактируемое в данный момент, быть невалидным в течение некоторого времени (то есть, stringToValue выбрасывает ParseException). |
void |
setCommitsOnValidEdit |
Устанавливает момент публикации изменений обратно в JFormattedTextField. |
void |
setOverwriteMode |
Настраивает поведение при вставке символов. |
void |
setValueClass |
Устанавливает класс, используемый для создания новых объектов. |
Object |
stringToValue |
Преобразует переданную строку в экземпляр getValueClass с помощью конструктора, принимающего строковый аргумент. |
String |
valueToString |
Преобразует переданный объект в строку с помощью метода toString. |
Методы, объявленные в классе javax.swing.JFormattedTextField.AbstractFormatter
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
Подробности конструкторов
DefaultFormatter
public DefaultFormatter()
Подробности методов
install
public void install(JFormattedTextField ftf)
DefaultFormatter на конкретное JFormattedTextField. Это вызовет valueToString для преобразования текущего значения из JFormattedTextField в строку. Затем установит Action из getActions, DocumentFilter возвращаемое getDocumentFilter, и NavigationFilter возвращаемое getNavigationFilter на JFormattedTextField. Подклассы обычно переопределяют этот метод только в случае необходимости установки дополнительных слушателей на JFormattedTextField.
Если при преобразовании текущего значения в строку возникает ошибка, это установит текст в пустую строку и пометит JFormattedTextField как находящийся в недопустимом состоянии.
Хотя это общедоступный метод, он обычно полезен только для подклассов JFormattedTextField. JFormattedTextField вызовет этот метод в соответствующие моменты при изменении значения или изменениях внутреннего состояния.
- Переопределяет:
-
installв классеJFormattedTextField.AbstractFormatter - Параметры:
-
ftf- JFormattedTextField для форматирования, может быть null, что указывает на отключение от текущего JFormattedTextField.
setCommitsOnValidEdit
public void setCommitsOnValidEdit(boolean commit)
JFormattedTextField. Если true, commitEdit вызывается после каждого корректного изменения (всякий раз, когда текст изменяется). С другой стороны, если это false, DefaultFormatter не публикует изменения обратно в JFormattedTextField. Таким образом, единственный момент, когда значение JFormattedTextField изменится, — это когда commitEdit вызывается на JFormattedTextField, обычно при нажатии клавиши Enter или при потере фокуса JFormattedTextField.- Параметры:
-
commit- Используется для указания, когда изменения сохраняются обратно в JTextComponent
getCommitsOnValidEdit
public boolean getCommitsOnValidEdit()
JFormattedTextField.- Возвращает:
- true, если изменения сохраняются после каждого корректного изменения
setOverwriteMode
public void setOverwriteMode(boolean overwriteMode)
overwriteMode равно true (по умолчанию), новые символы перезаписывают существующие символы в модели.- Параметры:
-
overwriteMode- Указывает, используется ли режим перезаписи или наложения.
getOverwriteMode
public boolean getOverwriteMode()
- Возвращает:
- true, если новые вставленные символы перезаписывают существующие символы
setAllowsInvalid
public void setAllowsInvalid(boolean allowsInvalid)
stringToValue выбрасывает ParseException). Часто удобно разрешить пользователю временно вводить недействительное значение.- Параметры:
-
allowsInvalid- Указывает, должно ли редактируемое значение всегда быть действительным
getAllowsInvalid
public boolean getAllowsInvalid()
- Возвращает:
- false, если редактируемое значение должно всегда быть действительным
setValueClass
public void setValueClass(Class<?> valueClass)
- Параметры:
-
valueClass- Класс, используемый для построения возвращаемого значения из stringToValue
getValueClass
public Class<?> getValueClass()
- Возвращает:
- Класс, используемый для построения возвращаемого значения из stringToValue
stringToValue
public Object stringToValue(String string) throws ParseException
getValueClass с помощью конструктора, принимающего строковый аргумент. Если getValueClass возвращает null, будет использован класс текущего значения в JFormattedTextField. Если он null, будет возвращена строка. Если конструктор выбрасывает исключение, будет выброшено исключение ParseException. Если конструктор с единственным строковым аргументом отсутствует, будет возвращено значение string. - Определено в:
-
stringToValueв классеJFormattedTextField.AbstractFormatter - Параметры:
-
string- Строка для преобразования - Возвращает:
- Объектное представление текста
- Исключения:
-
ParseException- если при преобразовании произошла ошибка
valueToString
public String valueToString(Object value) throws ParseException
toString. - Определено в:
-
valueToStringв классеJFormattedTextField.AbstractFormatter - Параметры:
-
value- Значение для преобразования - Возвращает:
- Строковое представление значения
- Исключения:
-
ParseException- если при преобразовании произошла ошибка
getDocumentFilter
protected DocumentFilter getDocumentFilter()
DocumentFilter для ограничения символов, которые могут быть введены в JFormattedTextField.- Переопределяет:
-
getDocumentFilterв классеJFormattedTextField.AbstractFormatter - Возвращает:
- DocumentFilter для ограничения правок
clone
public Object clone() throws CloneNotSupportedException
- Переопределяет:
-
cloneв классеJFormattedTextField.AbstractFormatter - Возвращает:
- копию DefaultFormatter
- Исключения:
-
CloneNotSupportedException- если класс объекта не поддерживает интерфейсCloneable. Подклассы, переопределяющие методclone, также могут выбросить это исключение, чтобы указать, что экземпляр не может быть скопирован. - См. также:
© 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/DefaultFormatter.html