Класс ObservableListBase<E>
- Параметры типа:
-
E- тип элементов, содержащихся в списке
- Все реализованные интерфейсы:
-
Iterable<E>,Collection<E>,List<E>,SequencedCollection<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
- См. также:
Краткое описание полей
Поля, объявленные в классе 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-arg. |
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, addFirst, addLast, clear, contains, containsAll, equals, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeLast, replaceAll, retainAll, reversed, 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- Указано:
-
setAllв интерфейсеObservableList<E> - Параметры:
-
elements- устанавливаемые элементы - Возвращает:
- true (как указано в Collection.add(E))
setAll
public boolean setAll(Collection<? extends E> col)
ObservableList- Указано:
-
setAllв интерфейсеObservableList<E> - Параметры:
-
col- коллекция с элементами, которые будут добавлены в ObservableArrayList - Возвращает:
- true (как указано в Collection.add(E))
removeAll
public boolean removeAll(E... elements)
ObservableListremoveAll.- Указано:
-
removeAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно удалить - Возвращает:
- true, если список изменился в результате этого вызова
retainAll
public boolean retainAll(E... elements)
ObservableListretainAll.- Указано:
-
retainAllв интерфейсеObservableList<E> - Параметры:
-
elements- элементы, которые нужно сохранить - Возвращает:
- true, если список изменился в результате этого вызова
remove
public void remove(int from, int to)
ObservableListsublist(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.