Класс JFormattedTextField.AbstractFormatter
- Все реализуемые интерфейсы:
Serializable
- Прямые известные подклассы:
DefaultFormatter
- Внешний класс:
JFormattedTextField
public abstract static class JFormattedTextField.AbstractFormatter extends Object implements Serializable
AbstractFormatter используются классом JFormattedTextField для преобразования объекта в строку и обратно — строки в объект. AbstractFormatter также могут задавать правила редактирования или навигации либо любым подходящим способом изменять JFormattedTextField для обеспечения требуемых правил. AbstractFormatter может быть активен только в одном JFormattedTextField одновременно. JFormattedTextField вызывает install, когда готов его использовать, а затем — uninstall, когда работа завершена. Подклассы, которым необходимо установить дополнительное состояние, должны переопределить install и соответствующим образом вызвать метод суперкласса.
Подклассы должны переопределить методы преобразования stringToValue и valueToString. При необходимости они могут переопределить getActions, getNavigationFilter и getDocumentFilter, чтобы особым образом ограничить JFormattedTextField.
Подклассы, допускающие временно недопустимое состояние JFormattedTextField, должны вызывать setEditValid в соответствующие моменты времени.
- С момента:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для вызова из подклассов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает копию AbstractFormatter. |
protected Action[] |
getActions() |
Создайте подкласс и переопределите метод, если хотите предоставить собственный набор Action. |
protected DocumentFilter |
getDocumentFilter() |
Создайте подкласс и переопределите метод, если хотите предоставить DocumentFilter для ограничения вводимых данных. |
protected JFormattedTextField |
getFormattedTextField() |
Возвращает текущий JFormattedTextField, на котором установлен AbstractFormatter. |
protected NavigationFilter |
getNavigationFilter() |
Создайте подкласс и переопределите метод, если хотите предоставить фильтр, ограничивающий направления навигации пользователя. |
void |
install |
Устанавливает AbstractFormatter для указанного JFormattedTextField. |
protected void |
invalidEdit() |
Этот метод следует вызывать, когда пользователь вводит недопустимый символ. |
protected void |
setEditValid |
Вызовите этот метод, чтобы обновить свойство editValid объекта JFormattedTextField. |
abstract Object |
stringToValue |
Разбирает text и возвращает произвольный объект. |
void |
uninstall() |
Удаляет все состояния, установленные AbstractFormatter для JFormattedTextField. |
abstract String |
valueToString |
Возвращает строковое значение для отображения value. |
Подробное описание конструкторов
AbstractFormatter
protected AbstractFormatter()
Подробное описание методов
install
public void install(JFormattedTextField ftf)
AbstractFormatter для указанного JFormattedTextField. Этот метод вызывает valueToString для преобразования текущего значения из JFormattedTextField в строку. Затем он устанавливает для JFormattedTextField Actions из getActions, DocumentFilter, возвращаемый методом getDocumentFilter, и NavigationFilter, возвращаемый методом getNavigationFilter. Обычно подклассам нужно переопределять этот метод только в том случае, если необходимо установить дополнительные прослушиватели для JFormattedTextField.
Если при преобразовании текущего значения в строку возникает ParseException, текст устанавливается в пустую строку, а JFormattedTextField помечается как находящийся в недопустимом состоянии.
Несмотря на то, что этот метод является открытым, обычно он нужен только тем, кто создает подклассы JFormattedTextField. JFormattedTextField вызывает этот метод в соответствующие моменты времени при изменении значения или внутреннего состояния. Вызывать этот метод самостоятельно нужно только в том случае, если вы создаете подкласс JFormattedTextField и устанавливаете или удаляете AbstractFormatter в другое время, чем это делает JFormattedTextField.
- Параметры:
-
ftf— JFormattedTextField, для которого выполняется форматирование; может быть null, что указывает на удаление форматирования с текущего JFormattedTextField.
uninstall
public void uninstall()
AbstractFormatter для JFormattedTextField. При этом сбрасываются DocumentFilter, NavigationFilter и дополнительные Actions, установленные для JFormattedTextField.stringToValue
public abstract Object stringToValue(String text) throws ParseException
text и возвращает произвольный объект. Некоторые форматтеры могут возвращать null.- Параметры:
-
text— строка для преобразования - Возвращает:
- Объектное представление текста
- Вызывает исключение:
-
ParseException— если при преобразовании произошла ошибка
valueToString
public abstract String valueToString(Object value) throws ParseException
value.- Параметры:
-
value— значение для преобразования - Возвращает:
- Строковое представление значения
- Вызывает исключение:
-
ParseException— если при преобразовании произошла ошибка
getFormattedTextField
protected JFormattedTextField getFormattedTextField()
JFormattedTextField, на котором установлен AbstractFormatter.- Возвращает:
- JFormattedTextField, для которого выполняется форматирование.
invalidEdit
protected void invalidEdit()
setEditValid
protected void setEditValid(boolean valid)
editValid объекта JFormattedTextField. Если вы можете установить правило, согласно которому JFormattedTextField всегда находится в допустимом состоянии, вызывать этот метод не потребуется.- Параметры:
-
valid— допустимое состояние JFormattedTextField
getActions
protected Action[] getActions()
Action. install установит их для JFormattedTextField объекта ActionMap.- Возвращает:
- Массив действий для установки в JFormattedTextField
getDocumentFilter
protected DocumentFilter getDocumentFilter()
DocumentFilter для ограничения вводимых данных. install установит возвращенное значение для JFormattedTextField.- Требования к реализации:
- Реализация по умолчанию возвращает
null. - Возвращает:
- DocumentFilter для ограничения редактирования
clone
protected Object clone() throws CloneNotSupportedException
AbstractFormatter. Возвращенный экземпляр не связан с JFormattedTextField.- Переопределяет:
-
cloneв классеObject - Возвращает:
- Копия AbstractFormatter
- Вызывает исключение:
-
CloneNotSupportedException— если класс объекта не поддерживает интерфейсCloneable. Подклассы, переопределяющие методclone, также могут выбросить это исключение, чтобы указать, что экземпляр нельзя клонировать. - См. также:
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/JFormattedTextField.AbstractFormatter.html