Spec-Zone.ru › OpenJavaFX 17

Класс 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()
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)
Устанавливает текст для использования в этом изменении.

Методы, объявленные в классе 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