Класс TextFormatter.Change
- Все реализуемые интерфейсы:
Cloneable
- Вложенный класс:
TextFormatter<V>
public static final class TextFormatter.Change extends Object implements Cloneable
formatter в элементе управления вводом текста всякий раз, когда текст элемента управления вводом текста изменяется. Этот класс содержит состояние и удобные методы для определения произошедшего изменения в элементе управления. Он также содержит ссылку на сам элемент управления вводом текста, чтобы разработчик мог запросить любое другое состояние элемента управления. Обратите внимание, что вы никогда не должны изменять состояние элемента управления непосредственно изнутри обработчика форматирования.
Изменение текста описывается диапазоном (getRangeStart(), getRangeEnd()) и текстом (getText(). Существует 3 случая:
-
Текст был удалён: В этом случае,
textпусто, аrangeобозначаетrangeудалённого текста. Например, при удалении второго слова из текста "Lorem ipsum dolor sit amet",rangeбудет (6,11), аtextбудет пустым. Аналогично, если вы хотите удалить другой или дополнительный текст, просто задайтеrange. Если вы хотите удалить первое слово вместо второго, просто вызовитеsetRange(0,5) -
Текст был добавлен: Теперь
rangeпусто (означает, что ничего не было удалено), но его значение всё равно важно. И начало, и конецrangeуказывают на индекс, где был добавлен новый текст. Например, добавление "ipsum " к "Lorem dolor sit amet" приведет к изменению сrange(6,6) иtext, содержащим строку "ipsum ". -
Текст был заменён: Сочетание двух предыдущих случаев. И
text, иrangeне пустые. Текст вrangeудаляется и заменяетсяtextв изменении. Новый текст добавляется вместо старого текста, который находится в началеrange. Например, при удалении текста вы можете просто заменить его некоторым текстом-заменителем, просто задав новый текст (setText("new text"))
Изменение является изменяемым, но не наблюдаемым. Оно должно использоваться только в течение одного изменения. Предполагается, что изменение будет изменено внутри форматировщика.
- С момента:
- JavaFX 8u40
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
TextFormatter.Change |
clone() |
|
final int |
getAnchor() |
Возвращает новую позицию якоря. |
final int |
getCaretPosition() |
Возвращает новую позицию курсора. |
final Control |
getControl() |
Возвращает элемент управления, связанный с этим изменением. |
final int |
getControlAnchor() |
Возвращает текущую позицию якоря элемента управления. |
final int |
getControlCaretPosition() |
Возвращает текущую позицию курсора элемента управления. |
final String |
getControlNewText() |
Возвращает весь новый текст, который будет использован в элементе управления после этого изменения. |
final String |
getControlText() |
Это весь текст, который у элемента управления был до изменения. |
final int |
getRangeEnd() |
Возвращает конечный индекс в TextInputControl.getText() для изменения. |
final int |
getRangeStart() |
Возвращает начальный индекс в TextInputControl.getText() для изменения. |
final IndexRange |
getSelection() |
Возвращает выделение этого изменения. |
final String |
getText() |
Возвращает текст, использованный в этом изменении. |
final boolean |
isAdded() |
Возвращает, было ли это изменение в ответ на добавление текста. |
final boolean |
isContentChange() |
Изменение содержимого — это любые изменения добавления, удаления или замены. |
final boolean |
isDeleted() |
Возвращает, было ли это изменение в ответ на удаление текста. |
final boolean |
isReplaced() |
Возвращает, было ли это изменение в ответ на замену текста. |
final void |
selectRange |
Устанавливает выделение. |
final void |
setAnchor |
Устанавливает позицию якоря. |
final void |
setCaretPosition |
Устанавливает позицию курсора. |
final void |
setRange |
Метод, присваивающий одновременно значения start и end таким образом, чтобы они были валидны по отношению друг к другу. |
final void |
setText |
Устанавливает текст для использования в этом изменении. |
Подробное описание методов
getControl
public final Control getControl()
- Возвращает:
- Элемент управления, связанный с этим изменением. Никогда не будет null.
getRangeStart
public final int getRangeStart()
TextInputControl.getText() для модификации. Будет всегда значением > 0 и ≤ TextInputControl.getLength().- Возвращает:
- Начальный индекс
getRangeEnd
public final int getRangeEnd()
TextInputControl.getText() для модификации. Будет всегда значением > getRangeStart() и ≤ TextInputControl.getLength().- Возвращает:
- Конечный индекс
setRange
public final void setRange(int start, int end)
- Параметры:
-
start- Новое начальное значение. Должно быть допустимым начальным значением -
end- Новое конечное значение. Должно быть допустимым конечным значением
getCaretPosition
public final int getCaretPosition()
getControlNewText().getLength()- Возвращает:
- Новое положение курсора
getAnchor
public final int getAnchor()
getControlNewText().getLength()- Возвращает:
- Новое положение якоря
getControlCaretPosition
public final int getControlCaretPosition()
- Возвращает:
- Предыдущее положение курсора
getControlAnchor
public final int getControlAnchor()
- Возвращает:
- Предыдущее положение якоря
selectRange
public final void selectRange(int newAnchor, int newCaretPosition)
getControlNewText().getLength(). Обратите внимание на зависимость от порядка: эти позиции должны быть указаны после задания нового текста.- Параметры:
-
newAnchor- Новое положение якоря -
newCaretPosition- Новое положение курсора
getSelection
public final IndexRange getSelection()
getControlNewText(), а не к текущему тексту элемента управления.- Возвращает:
- Выделенный диапазон этого изменения.
setAnchor
public final void setAnchor(int newAnchor)
getControlNewText().getLength(). Обратите внимание на зависимость от порядка: эта позиция должна быть указана после задания нового текста.- Параметры:
-
newAnchor- Новое положение якоря
setCaretPosition
public final void setCaretPosition(int newCaretPosition)
getControlNewText().getLength(). Обратите внимание на зависимость от порядка: эта позиция должна быть указана после задания нового текста.- Параметры:
-
newCaretPosition- Новое положение курсора
getText
public final String getText()
- Возвращает:
- Текст, участвующий в этом изменении. Никогда не будет null.
setText
public final void setText(String value)
- Параметры:
-
value- Текст. Не может быть null.
getControlText
public final String getControlText()
getControlNewText().- Возвращает:
- предыдущий текст элемента управления
getControlNewText
public final String getControlNewText()
- Возвращает:
- Предполагаемый новый текст элемента управления на момент вызова, согласно состоянию, заданному для свойств start, end и text объекта Change.
isAdded
public final boolean isAdded()
- Возвращает:
- true, если текст добавлялся
isDeleted
public final boolean isDeleted()
- Возвращает:
- true, если текст удалялся
isReplaced
public final boolean isReplaced()
- Возвращает:
- true, если текст заменялся
isContentChange
public final boolean isContentChange()
c.isAdded() || c.isDeleted() ;- Возвращает:
- true, если содержимое изменилось
clone
public TextFormatter.Change clone()
- Переопределяет:
-
cloneв классеObject
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.