Spec-Zone.ru › OpenJavaFX 24

Класс TextFormatter.Change

java.lang.Object
javafx.scene.control.TextFormatter.Change
Все реализованные интерфейсы:
Cloneable
Вложенный класс:
TextFormatter<V>
public static final class TextFormatter.Change extends Object implements Cloneable
Содержит состояние, представляющее изменение содержимого или выделения для TextInputControl. Этот объект передаётся любому зарегистрированному 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(int newAnchor, int newCaretPosition)
Устанавливает выделение.
final void setAnchor(int newAnchor)
Устанавливает якорь.
final void setCaretPosition(int newCaretPosition)
Устанавливает положение курсора.
final void setRange(int start, int 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()
Изменение содержимого - это любое из изменений add, delete или replace. По сути, это сокращение для c.isAdded() || c.isDeleted() ;
Возвращает:
true, если содержимое изменилось

clone

public TextFormatter.Change clone()
Переопределяет:
clone в классе Object

Отправить сообщение об ошибке или предложить улучшение
Copyright © 2008, 2025, Oracle и/или его аффилированные лица. Все права защищены.

© 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