Класс TextFormatter.Change
- Все реализованные интерфейсы:
Cloneable
- Вложенный класс:
TextFormatter<V>
public static final class TextFormatter.Change extends Object implements Cloneable
formatter в TextInputControl всякий раз, когда изменяется текст для TextInputControl. Этот класс содержит состояние и удобные методы для определения произошедшего изменения на элементе управления. Он также содержит ссылку на сам TextInputControl, чтобы разработчик мог запросить любое другое состояние на элементе управления. Обратите внимание, что вы никогда не должны изменять состояние элемента управления напрямую из обработчика форматирования.
Изменение текста описывается диапазоном (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в Change. Новый текст добавляется вместо старого текста, который находится в началеrange. Например, при удалении текста вы можете просто заменить его на какой-либо заполнитель, просто установив новый текст (setText("new text"))
Change изменяемый, но не наблюдаемый. Он должен использоваться только на протяжении одного изменения. Предполагается, что Change будет изменён внутри форматировщика.
- С:
- 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 |
Метод, устанавливающий сразу значения начала и конца таким образом, чтобы они были валидны по отношению друг к другу. |
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
© 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.