Spec-Zone.ru › OpenJavaFX 17

Класс ObservableListBase<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
javafx.collections.ObservableListBase<E>
Параметры типа:
E - тип элементов, содержащихся в списке
Все реализуемые интерфейсы:
Iterable<E>, Collection<E>, List<E>, Observable, ObservableList<E>
Непосредственные известные подклассы:
ModifiableObservableListBase, TransformationList
public abstract class ObservableListBase<E>
extends AbstractList<E>
implements ObservableList<E>
Абстрактный класс, служащий базовым классом для реализаций интерфейса ObservableList. Базовый класс предоставляет две функциональности для реализующих классов.
  • Обработка слушателей, реализуя методы addListener и removeListener. Метод fireChange(javafx.collections.ListChangeListener.Change) предоставляется для уведомления слушателей с объектом Change.
  • Методы для построения объекта ListChangeListener.Change. Существуют различные методы, называемые next*, такие как nextAdd(int, int) для новых элементов в списках или nextRemove(int, java.lang.Object) для удаления элемента из списка.

    Эти методы всегда должны быть заключены в блок beginChange() и endChange().

    См. пример ниже.

Следующий пример демонстрирует, как работает построение объекта изменения:
  public void removeOddIndexes() {
      beginChange();
      try {
          for (int i = 1; i < size(); ++i) {
              remove(i);
          }
      } finally {
          endChange();
      }
  }

  public void remove(int i) {
      beginChange();
      try {
          E removed = ... //do some stuff that will actually remove the element at index i
          nextRemove(i, removed);
      } finally {
          endChange();
      }
  }

 
Блоки try/finally в примере необходимы только в случае возможности возникновения исключения внутри блока beginChange() / endChange()

Примечание: Если вы хотите создать изменяемую реализацию интерфейса ObservableList, рассмотрите возможность использования ModifiableObservableListBase в качестве суперкласса.

Примечание: Для создания списка с последовательным доступом необходимо переопределить методы AbstractList.listIterator(), AbstractList.iterator() и использовать их в методах AbstractList.get(int), AbstractCollection.size() и других методах соответствующим образом.

С момента:
JavaFX 8.0
См. также:
ObservableList, ListChangeListener.Change, ModifiableObservableListBase

Краткое описание полей

Поля, объявленные в классе java.util.AbstractList

modCount

Краткое описание конструкторов

Конструкторы
Конструктор Описание
ObservableListBase()
Создаёт стандартный ObservableListBase.

Краткое описание методов

Модификатор и тип Метод Описание

Наследуемые методы из класса java.util.AbstractList

add, add, addAll, clear, equals, get, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList

Наследуемые методы из класса java.util.AbstractCollection

addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString

Наследуемые методы из класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Наследуемые методы из интерфейса java.util.Collection

parallelStream, removeIf, stream, toArray

Наследуемые методы из интерфейса java.lang.Iterable

forEach

Наследуемые методы из интерфейса java.util.List

add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray

Наследуемые методы из интерфейса javafx.beans.Observable

addListener, removeListener

Наследуемые методы из интерфейса javafx.collections.ObservableList

addAll, addListener, filtered, remove, removeAll, removeListener, retainAll, setAll, setAll, sorted, sorted

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

ObservableListBase

public ObservableListBase()
Создаёт стандартную ObservableListBase.

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

nextUpdate

protected final void nextUpdate(int pos)
Добавляет новую операцию обновления в изменения.

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
pos - позиция в списке, где находится обновлённый элемент.

nextSet

protected final void nextSet(int idx, E old)
Добавляет новую операцию изменения в изменения. Эквивалентно nextRemove(idx); nextAdd(idx, idx + 1); .

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
idx - индекс элемента, который был изменён
old - старое значение в позиции idx.

nextReplace

protected final void nextReplace(int from, int to, List<? extends E> removed)
Добавляет новую операцию замены в изменения. Эквивалентно nextRemove(from, removed); nextAdd(from, to); .

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
from - индекс, где элементы были заменены
to - конечный индекс (исключая) диапазона, где находятся новые элементы
removed - список элементов, которые были удалены

nextRemove

protected final void nextRemove(int idx, List<? extends E> removed)
Добавляет новую операцию удаления в изменения с удалением нескольких элементов.

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
idx - индекс, где были удалены элементы
removed - список элементов, которые были удалены

nextRemove

protected final void nextRemove(int idx, E removed)
Добавляет новую операцию удаления в изменения с удалением одного элемента.

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
idx - индекс, где был удалён элемент
removed - элемент, который был удалён

nextPermutation

protected final void nextPermutation(int from, int to, int[] perm)
Добавляет новую операцию перестановки в изменения. Перестановка по индексу "i" содержит индекс, куда был перемещён элемент из индекса "i".

Не обязательно предоставлять самую маленькую возможную перестановку. Правильно всегда вызывать этот метод с nextPermutation(0, size(), permutation); .

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
from - отмечает начало (включая) диапазона, который был переставлен
to - отмечает конец (исключая) диапазона, который был переставлен
perm - перестановка в этом диапазоне. Даже если from != 0, массив должен содержать индексы списка. Поэтому такая перестановка не будет содержать индексы диапазона (0, from)

nextAdd

protected final void nextAdd(int from, int to)
Добавляет новую операцию добавления в изменения. Нет необходимости предоставлять список добавленных элементов, так как их можно найти непосредственно в списке по указанным индексам.

Примечание: необходимо вызывать внутри блока beginChange() / endChange().

Примечание: необходимо отражать текущее состояние списка.

Параметры:
from - отмечает начало (включая) диапазона, который был добавлен
to - отмечает конец (исключая) диапазона, который был добавлен

beginChange

protected final void beginChange()
Начинает блок изменений. Должен быть вызван перед тем, как будут вызваны любые методы next*. Для каждого beginChange() должен быть соответствующий вызов endChange().

beginChange() вызовы могут быть вложены в блок beginChange()/endChange().

См. также:
endChange()

endChange

protected final void endChange()
Завершает блок изменений. Если блок является самым внешним блоком для ObservableList, то Change создаётся и все слушатели уведомляются.

Завершение вложенного блока не вызывает уведомления.

См. также:
beginChange()

fireChange

protected final void fireChange(ListChangeListener.Change<? extends E> change)
Уведомляет всех слушателей об изменениях
Параметры:
change - объект, представляющий изменение, которое было выполнено

hasListeners

protected final boolean hasListeners()
Возвращает true, если для этого списка зарегистрированы слушатели.
Возвращает:
true, если для этого списка есть слушатель

© 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