Spec-Zone.ru › OpenJavaFX 8
javafx.scene.control

Класс 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 изменяемый, но не наблюдаемый. Он должен использоваться только в течение одного изменения. Предполагается, что изменение будет изменено внутри форматировщика.

С:

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)
    Устанавливает текст для использования в этом изменении.
    String toString()
    • Методы, унаследованные от класса java.lang.Object

      equals, finalize, getClass, hashCode, notify, notifyAll, 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 - Новое значение начала. Должно быть корректным начальным значением

    • 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 - Новая позиция якоря

    • 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, если содержимое изменилось

    • toString

      public String toString()

      Переопределяет:

      toString в классе Object

    • 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