Класс 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.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, если для этого списка есть слушатель
© 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.