Класс 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 в соответствующие моменты.
- Since:
- 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 в строку. Затем установит Action из getActions, DocumentFilter, возвращаемое из getDocumentFilter, и NavigationFilter, возвращаемое из getNavigationFilter, на JFormattedTextField. Подклассы обычно будут переопределять этот метод только если хотят установить дополнительные слушатели на JFormattedTextField.
Если при преобразовании текущего значения в строку возникнет ошибка, это установит текст в пустую строку и пометит JFormattedTextField как находящееся в недопустимом состоянии.
Хотя этот метод является общедоступным, он обычно полезен только для подклассов JFormattedTextField. JFormattedTextField вызовет этот метод в соответствующие моменты, когда значение изменяется или изменяется внутреннее состояние. Вам нужно будет вызвать этот метод только если вы наследуете от JFormattedTextField и устанавливаете/удаляете AbstractFormatter в другое время, чем JFormattedTextField.
- Parameters:
-
ftf- JFormattedTextField для форматирования, может быть null, указывающий на отмену установки из текущего JFormattedTextField.
uninstall
public void uninstall()
AbstractFormatter мог установить на JFormattedTextField. Это сбрасывает DocumentFilter, NavigationFilter и дополнительные Action установленные на JFormattedTextField.stringToValue
public abstract Object stringToValue(String text) throws ParseException
text и возвращает произвольный объект. Некоторые форматировщики могут вернуть null.- Parameters:
-
text- Строка для преобразования - Returns:
- Представление объекта текста
- Throws:
-
ParseException- если при преобразовании произошла ошибка
valueToString
public abstract String valueToString(Object value) throws ParseException
value.- Parameters:
-
value- Значение для преобразования - Returns:
- Строковое представление значения
- Throws:
-
ParseException- если при преобразовании произошла ошибка
getFormattedTextField
protected JFormattedTextField getFormattedTextField()
JFormattedTextField, на котором установлен AbstractFormatter.- Returns:
- JFormattedTextField для форматирования.
invalidEdit
protected void invalidEdit()
setEditValid
protected void setEditValid(boolean valid)
editValid объекта JFormattedTextField. Если вы хотите обеспечить правило, что JFormattedTextField всегда находится в допустимом состоянии, вам не нужно вызывать этот метод.- Parameters:
-
valid- Допустимое состояние JFormattedTextField
getActions
protected Action[] getActions()
Action. install установит эти объекты на JFormattedTextField's ActionMap.- Returns:
- Массив действий для установки на JFormattedTextField
getDocumentFilter
protected DocumentFilter getDocumentFilter()
DocumentFilter для ограничения вводимого значения. install установит возвращаемое значение на JFormattedTextField.- Implementation Requirements:
- По умолчанию возвращает
null. - Returns:
- DocumentFilter для ограничения редактирования
clone
protected Object clone() throws CloneNotSupportedException
AbstractFormatter. Возвращённый экземпляр не связан с JFormattedTextField.- Overrides:
-
cloneв классеObject - Returns:
- Копия AbstractFormatter
- Throws:
-
CloneNotSupportedException- если класс объекта не поддерживает интерфейсCloneable. Подклассы, переопределяющие методclone, также могут бросать это исключение, чтобы указать, что экземпляр не может быть клонирован. - See Also:
© 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/JFormattedTextField.AbstractFormatter.html