Класс ObservableListBase<E>
- Type Parameters:
-
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() и других, соответственно.
- Since:
- JavaFX 8.0
- См. также:
Краткое описание полей
Поля, объявленные в классе java.util.AbstractList
modCount
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ObservableListBase() |
Создаёт стандартный ObservableListBase. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
addAll |
Удобный метод для добавления элементов с помощью var-arg. |
final void |
addListener |
Добавляет InvalidationListener, который будет уведомлен всякий раз, когда Observable станет недействительным. |
final void |
addListener |
Добавляет слушатель в этот наблюдаемый список. |
protected final void |
beginChange() |
Начинает блок изменений. |
protected final void |
endChange() |
Завершает блок изменений. |
protected final void |
fireChange |
Уведомляет всех слушателей об изменении. |
protected final boolean |
hasListeners() |
Возвращает true, если для этого списка зарегистрированы какие-либо слушатели. |
protected final void |
nextAdd |
Добавляет новую операцию добавления в изменения. |
protected final void |
nextPermutation |
Добавляет новую операцию перестановки в изменения. |
protected final void |
nextRemove |
Добавляет новую операцию удаления в изменения с удалением одного элемента. |
protected final void |
nextRemove |
Добавляет новую операцию удаления в изменения с удалением нескольких элементов. |
protected final void |
nextReplace |
Добавляет новую операцию замены в изменения. |
protected final void |
nextSet |
Добавляет новую операцию установки в изменения. |
protected final void |
nextUpdate |
Добавляет новую операцию обновления в изменения. |
void |
remove |
Упрощённый способ вызова sublist(from, to).clear(). |
boolean |
removeAll |
Удобный метод для использования var-arg с методом removeAll. |
final void |
removeListener |
Удаляет заданного слушателя из списка слушателей, которые уведомляются всякий раз, когда значение Observable становится недействительным. |
final void |
removeListener |
Попытка удалить слушателя из этого наблюдаемого списка. |
boolean |
retainAll |
Удобный метод для использования var-arg с методом retainAll. |
boolean |
setAll |
Очищает ObservableList и добавляет все элементы, переданные с помощью var-args. |
boolean |
setAll |
Очищает 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.beans.Observable
subscribe
Методы, объявленные в интерфейсе javafx.collections.ObservableList
filtered, 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
protected final void endChange()
ObservableList, то Change создаётся, и все слушатели уведомляются. Завершение вложенного блока не вызывает уведомления.
- См. также:
addListener
public final void addListener(InvalidationListener listener)
ObservableInvalidationListener, который будет уведомляться всякий раз, когда Observable становится недействительным. Если один и тот же слушатель добавляется более одного раза, то он будет уведомляться более одного раза. То есть проверка на уникальность не выполняется. Обратите внимание, что тот же фактический InvalidationListener экземпляр может быть безопасно зарегистрирован для разных Observables.
Observable хранит сильную ссылку на слушателя, что предотвратит сборку мусора слушателя и может привести к утечке памяти. Рекомендуется либо отменить регистрацию слушателя, вызвав removeListener после использования, либо использовать экземпляр WeakInvalidationListener, чтобы избежать этой ситуации.
- Указано в:
-
addListenerв интерфейсеObservable - Параметры:
-
listener- Слушатель для регистрации - См. также:
removeListener
public final void removeListener(InvalidationListener listener)
ObservableObservable становится недействительным. Если заданный слушатель не был ранее зарегистрирован (т.е. его никогда не добавляли), то этот вызов метода является пустым. Если он был ранее добавлен, то он будет удалён. Если он был добавлен более одного раза, то будет удалён только первый экземпляр.
- Указано в:
-
removeListenerв интерфейсеObservable - Параметры:
-
listener- Слушатель для удаления - См. также:
addListener
public final void addListener(ListChangeListener<? super E> listener)
ObservableList- Указано в:
-
addListenerв интерфейсеObservableList<E> - Параметры:
-
listener- слушатель для слежения за изменениями в списке
removeListener
public final void removeListener(ListChangeListener<? super E> listener)
ObservableList- Указано в:
-
removeListenerв интерфейсеObservableList<E> - Параметры:
-
listener- слушатель для удаления
fireChange
protected final void fireChange(ListChangeListener.Change<? extends E> change)
- Параметры:
-
change- объект, представляющий произведённое изменение
hasListeners
protected final boolean hasListeners()
- Возвращает:
- true, если для этого списка есть слушатель
addAll
public boolean addAll(E... elements)
ObservableList- Указано в:
-
addAllв интерфейсеObservableList<E> - Параметры:
-
elements- добавляемые элементы - Возвращает:
- true (как указано в Collection.add(E))
setAll
public boolean setAll(E... elements)
ObservableList- Specified by:
-
setAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно установить - Возвращает:
- true (как задано в Collection.add(E))
setAll
public boolean setAll(Collection<? extends E> col)
ObservableList- Specified by:
-
setAllв интерфейсеObservableList<E> - Параметры:
-
col- коллекция с элементами, которые будут добавлены в этот observableArrayList - Возвращает:
- true (как задано в Collection.add(E))
removeAll
public boolean removeAll(E... elements)
ObservableListremoveAll.- Specified by:
-
removeAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно удалить - Возвращает:
- true, если список изменился в результате этого вызова
retainAll
public boolean retainAll(E... elements)
ObservableListretainAll.- Specified by:
-
retainAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно сохранить - Возвращает:
- true, если список изменился в результате этого вызова
remove
public void remove(int from, int to)
ObservableListsublist(from, to).clear(). Поскольку это распространенная операция, ObservableList имеет этот метод для удобного использования.- Specified by:
-
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.