Spec-Zone.ru › OpenJavaFX 21

Класс TextFormatter.Change

java.lang.Object
javafx.scene.control.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(int newAnchor, int newCaretPosition)
Устанавливает выделение.
final void setAnchor(int newAnchor)
Устанавливает позицию якоря.
final void setCaretPosition(int newCaretPosition)
Устанавливает позицию курсора.
final void setRange(int start, int end)
Метод, присваивающий одновременно значения start и end таким образом, чтобы они были валидны по отношению друг к другу.
final void setText(String value)
Устанавливает текст для использования в этом изменении.

Методы, унаследованные от класса java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

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()
Получает новое положение курсора. Это значение всегда будет > 0 и ≤ getControlNewText().getLength()
Возвращает:
Новое положение курсора

getAnchor

public final int getAnchor()
Получает новое якорь. Это значение всегда будет > 0 и ≤ getControlNewText().getLength()
Возвращает:
Новое положение якоря

getControlCaretPosition

public final int getControlCaretPosition()
Получает текущее положение курсора элемента управления.
Возвращает:
Предыдущее положение курсора

getControlAnchor

public final int getControlAnchor()
Получает текущее положение якоря элемента управления.
Возвращает:
Предыдущее положение якоря

selectRange

public final void selectRange(int newAnchor, int newCaretPosition)
Устанавливает выделение. Значения якоря и позиции курсора должны быть > 0 и ≤ getControlNewText().getLength(). Обратите внимание на зависимость от порядка: эти позиции должны быть указаны после задания нового текста.
Параметры:
newAnchor - Новое положение якоря
newCaretPosition - Новое положение курсора

getSelection

public final IndexRange getSelection()
Получает выделение этого изменения. Обратите внимание, что диапазон выделения относится к getControlNewText(), а не к текущему тексту элемента управления.
Возвращает:
Выделенный диапазон этого изменения.

setAnchor

public final void setAnchor(int newAnchor)
Устанавливает якорь. Значение якоря должно быть > 0 и ≤ getControlNewText().getLength(). Обратите внимание на зависимость от порядка: эта позиция должна быть указана после задания нового текста.
Параметры:
newAnchor - Новое положение якоря

setCaretPosition

public final void setCaretPosition(int newCaretPosition)
Устанавливает позицию курсора. Значение позиции курсора должно быть > 0 и ≤ getControlNewText().getLength(). Обратите внимание на зависимость от порядка: эта позиция должна быть указана после задания нового текста.
Параметры:
newCaretPosition - Новое положение курсора

getText

public final String getText()
Получает текст, используемый в этом изменении. Например, это может быть новый текст, добавленный или текст, заменяющий весь текст элемента управления в диапазоне от начала до конца. Обычно это пустая строка только в тех случаях, когда диапазон удаляется.
Возвращает:
Текст, участвующий в этом изменении. Никогда не будет null.

setText

public final void setText(String value)
Устанавливает текст для использования в этом изменении. Используется для замены диапазона от начала до конца, если такой диапазон существует, или для вставки текста в позицию, представленную start == end.
Параметры:
value - Текст. Не может быть null.

getControlText

public final String getControlText()
Это полный текст, которым обладает элемент управления до изменения. Чтобы получить текст после этого изменения, используйте getControlNewText().
Возвращает:
предыдущий текст элемента управления

getControlNewText

public final String getControlNewText()
Получает весь новый текст, который будет использован в элементе управления после этого изменения. Обратите внимание, что некоторые элементы управления (например, TextField) могут выполнять дополнительную фильтрацию после внесения изменения (например, удалять новые строки), поэтому вы не можете гарантировать, что newText будет точно таким же, как и окончательно установленное содержимое в элементе управления, но вы можете предположить, что это так для вычисления новой позиции курсора и нового якоря (поскольку эти значения будут изменены по мере необходимости после того, как элемент управления удалит любые дополнительные символы, которые он мог удалить).
Возвращает:
Предполагаемый новый текст элемента управления на момент вызова, согласно состоянию, заданному для свойств start, end и text объекта Change.

isAdded

public final boolean isAdded()
Получает, было ли это изменение в ответ на добавление текста. Обратите внимание, что после того, как объект Change модифицирован форматировщиком (одним из методов-установщиков), возвращаемое значение этого метода не изменяется. Он отвечает на вопрос, было ли это изменение вызвано добавлением текста, а не на вопрос, будет ли текст в итоге добавлен.
Возвращает:
true, если текст добавлялся

isDeleted

public final boolean isDeleted()
Получает, было ли это изменение в ответ на удаление текста. Обратите внимание, что после того, как объект Change модифицирован форматировщиком (одним из методов-установщиков), возвращаемое значение этого метода не изменяется. Он отвечает на вопрос, было ли это изменение вызвано удалением текста, а не на вопрос, будет ли текст в итоге удален.
Возвращает:
true, если текст удалялся

isReplaced

public final boolean isReplaced()
Получает, было ли это изменение в ответ на замену текста. Обратите внимание, что после того, как объект Change модифицирован форматировщиком (одним из методов-установщиков), возвращаемое значение этого метода не изменяется. Он отвечает на вопрос, было ли это изменение вызвано заменой текста, а не на вопрос, будет ли текст в итоге заменен.
Возвращает:
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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API