Класс JFormattedTextField.AbstractFormatter
- Все реализуемые интерфейсы:
Serializable
- Прямые известные подклассы:
DefaultFormatter
- Внешний класс:
JFormattedTextField
public abstract static class JFormattedTextField.AbstractFormatter extends Object implements Serializable
AbstractFormatter используются JFormattedTextField для преобразования Object в String и обратно — String в Object. 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 и возвращает произвольный Object. |
void |
uninstall() |
Удаляет все состояния, установленные AbstractFormatter в JFormattedTextField. |
abstract String |
valueToString |
Возвращает строковое значение для отображения value. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии. Финализация признана устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно путем получения уведомления (notified) или прерывания (interrupted). |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно путем получения уведомления (notified) или прерывания (interrupted), либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно путем получения уведомления (notified) или прерывания (interrupted), либо истечения заданного промежутка реального времени. |
Подробное описание конструкторов
AbstractFormatter
protected AbstractFormatter()
Подробное описание методов
install
public void install(JFormattedTextField ftf)
AbstractFormatter для указанного JFormattedTextField. При этом вызывается valueToString для преобразования текущего значения из JFormattedTextField в String. Затем для JFormattedTextField устанавливаются Actionы из getActions, DocumentFilter, возвращаемый getDocumentFilter, и NavigationFilter, возвращаемый getNavigationFilter. Обычно подклассам требуется переопределять этот метод только в том случае, если необходимо установить дополнительные слушатели для JFormattedTextField.
Если при преобразовании текущего значения в String возникает ParseException, текст устанавливается в пустую строку, а JFormattedTextField помечается как находящийся в недопустимом состоянии.
Хотя этот метод является общедоступным, обычно он полезен только разработчикам подклассов JFormattedTextField. JFormattedTextField вызывает этот метод в нужный момент при изменении значения или внутреннего состояния объекта. Вызывать этот метод самостоятельно нужно только в том случае, если вы создаете подкласс JFormattedTextField и устанавливаете или удаляете AbstractFormatter не в тот момент, когда это делает JFormattedTextField.
- Параметры:
-
ftf— JFormattedTextField, для которого выполняется форматирование; может быть null, что означает удаление форматирования с текущего JFormattedTextField.
uninstall
public void uninstall()
AbstractFormatter в JFormattedTextField. Сбрасывает DocumentFilter, NavigationFilter и дополнительные Actionы, установленные в JFormattedTextField.stringToValue
public abstract Object stringToValue(String text) throws ParseException
text и возвращает произвольный Object. Некоторые средства форматирования могут возвращать null.- Параметры:
-
text— String для преобразования - Возвращает:
- Представление текста в виде Object
- Исключения:
-
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 установит их в ActionMap объекта JFormattedTextField.- Возвращает:
- Массив Actions для установки в 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.