- 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. Существуют различные методы, такие как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()
-
Краткое описание методов
Все методыМетоды экземпляровКонкретные методы Модификатор и тип Метод Описание booleanaddAll(E... elements)Удобный метод для добавления элементов с использованием var-arg.voidaddListener(InvalidationListener listener)ДобавляетInvalidationListener, который будет уведомляться всякий раз, когдаObservableстановится недействительным.voidaddListener(ListChangeListener<? super E> listener)Добавляет слушателя к этому наблюдаемому списку.protected voidbeginChange()Начинает блок изменений.protected voidendChange()Завершает блок изменений.protected voidfireChange(ListChangeListener.Change<? extends E> change)Уведомляет всех слушателей о произошедших изменениях.protected booleanhasListeners()Возвращает true, если для этого списка зарегистрированы слушатели.protected voidnextAdd(int from, int to)Добавляет новую операцию добавления в изменения.protected voidnextPermutation(int from, int to, int[] perm)Добавляет новую операцию перестановки в изменения.protected voidnextRemove(int idx, E removed)Добавляет новую операцию удаления в изменения с удалением одного элемента.protected voidnextRemove(int idx, List<? extends E> removed)Добавляет новую операцию удаления в изменения с удалением нескольких элементов.protected voidnextReplace(int from, int to, List<? extends E> removed)Добавляет новую операцию замены в изменения.protected voidnextSet(int idx, E old)Добавляет новую операцию установки в изменения.protected voidnextUpdate(int pos)Добавляет новую операцию обновления в изменения.voidremove(int from, int to)Упрощенный способ вызоваsublist(from, to).clear().booleanremoveAll(E... elements)Удобный метод для использования var-arg с методомremoveAll.voidremoveListener(InvalidationListener listener)Удаляет указанного слушателя из списка слушателей, которые уведомляются всякий раз, когда значениеObservableстановится недействительным.voidremoveListener(ListChangeListener<? super E> listener)Попытка удалить слушателя из этого наблюдаемого списка.booleanretainAll(E... elements)Удобный метод для использования var-arg с методомretainAll.booleansetAll(E... elements)Очищает ObservableList и добавляет все элементы, переданные в качестве var-args.booleansetAll(Collection<? extends E> col)Очищает ObservableList и добавляет все элементы из коллекции.-
Методы, унаследованные от класса 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.collections.ObservableList
filtered, sorted, sorted
-
-
Подробное описание конструкторов
-
ObservableListBase
public 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()
-
addListener
public final void addListener(InvalidationListener listener)
Описание скопировано из интерфейса:ObservableДобавляет слушателяInvalidationListener, который будет уведомляться всякий раз, когдаObservableстановится недействительным. Если один и тот же слушатель добавляется более одного раза, то он будет уведомляться более одного раза. То есть, проверка уникальности не выполняется.Обратите внимание, что один и тот же экземпляр фактического
InvalidationListenerможет быть безопасно зарегистрирован для различныхObservables.Observableхранит сильную ссылку на слушателя, что предотвратит сборку мусора слушателя и может привести к утечке памяти. Рекомендуется либо отменить регистрацию слушателя, вызвавremoveListenerпосле использования, или использовать экземплярWeakInvalidationListener, чтобы избежать этой ситуации.- Указано:
-
addListenerв интерфейсеObservable - Параметры:
-
listener- Слушатель для регистрации - См. также:
Observable.removeListener(InvalidationListener)
-
removeListener
public final void removeListener(InvalidationListener listener)
Описание скопировано из интерфейса:ObservableУдаляет данного слушателя из списка слушателей, которые уведомляются всякий раз, когда значениеObservableстановится недействительным.Если данный слушатель ранее не был зарегистрирован (т. е. он никогда не добавлялся), то этот вызов метода является пустой операцией. Если он был ранее добавлен, то он будет удален. Если он был добавлен более одного раза, то будет удалено только первое вхождение.
- Указано:
-
removeListenerв интерфейсеObservable - Параметры:
-
listener- Слушатель для удаления - См. также:
Observable.addListener(InvalidationListener)
-
-
Установить все
public boolean setAll(E... elements)
Описание скопировано из интерфейса:ObservableListОчищает ObservableList и добавляет все элементы, переданные в качестве аргументов var-args.- Определено в:
-
setAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно установить - Возвращает:
- true (как указано в Collection.add(E))
-
Установить все
public boolean setAll(Collection<? extends E> col)
Описание скопировано из интерфейса:ObservableListОчищает ObservableList и добавляет все элементы из коллекции.- Определено в:
-
setAllв интерфейсеObservableList<E> - Параметры:
-
col- коллекция с элементами, которые будут добавлены в этот observableArrayList - Возвращает:
- true (как указано в Collection.add(E))
-
Удалить все
public boolean removeAll(E... elements)
Описание скопировано из интерфейса:ObservableListУдобный метод для использования var-arg с методомremoveAll.- Определено в:
-
removeAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно удалить - Возвращает:
- true, если список изменился в результате этого вызова
-
Сохранить все
public boolean retainAll(E... elements)
Описание скопировано из интерфейса:ObservableListУдобный метод для использования var-arg с методомretainAll.- Определено в:
-
retainAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно сохранить - Возвращает:
- true, если список изменился в результате этого вызова
-
Удалить
public void remove(int from, int to)Описание скопировано из интерфейса:ObservableListУпрощенный способ вызоваsublist(from, to).clear(). Поскольку это распространенная операция, ObservableList имеет этот метод для удобного использования.- Определено в:
-
removeв интерфейсеObservableList<E> - Параметры:
-
from- начало диапазона для удаления (включительно) -
to- конец диапазона для удаления (исключительно)
-
© 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.