Класс 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() | |
int | getAnchor() | Получение нового якоря. |
int | getCaretPosition() | Получение новой позиции курсора. |
Control | getControl() | Получение элемента управления, связанного с этим изменением. |
int | getControlAnchor() | Получение текущей позиции якоря элемента управления. |
int | getControlCaretPosition() | Получение текущей позиции курсора элемента управления. |
String | getControlNewText() | Получение полного нового текста, который будет использован в элементе управления после этого изменения. |
String | getControlText() | Это весь текст, который есть в элементе управления до изменения. |
int | getRangeEnd() | Получение конечного индекса в TextInputControl.getText() для изменения. |
int | getRangeStart() | Получение начального индекса в TextInputControl.getText() для изменения. |
IndexRange | getSelection() | Получение выделения этого изменения. |
String | getText() | Получение текста, используемого в этом изменении. |
boolean | isAdded() | Получение того, было ли это изменение в ответ на добавление текста. |
boolean | isContentChange() | Изменение содержимого – любое из изменений добавления, удаления или замены. |
boolean | isDeleted() | Получение того, было ли это изменение в ответ на удаление текста. |
boolean | isReplaced() | Получение того, было ли это изменение в ответ на замену текста. |
void | selectRange(int newAnchor,
int newCaretPosition) | Устанавливает выделение. |
void | setAnchor(int newAnchor) | Устанавливает якорь. |
void | setCaretPosition(int newCaretPosition) | Устанавливает позицию курсора. |
void | setRange(int start,
int end) | Метод, устанавливающий одновременно значения начала и конца, таким образом, чтобы они были корректными относительно друг друга. |
void | setText(String value) | Устанавливает текст для использования в этом изменении. |
Подробное описание методов
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.