Module  javafx.base
软件包  javafx.collections

Class ObservableListBase<E>

    • 构造方法详细信息

      • ObservableListBase

        public ObservableListBase​()
    • 方法详细信息

      • nextUpdate

        protected final void nextUpdate​(int pos)
        对更改添加新的更新操作。

        注意 :需要在endChange()块内beginChange()

        注意 :需要反映列表的当前状态。

        参数
        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);调用此方法是nextPermutation(0, size(), permutation);

        注意 :需要在内部beginChange() endChange()块。

        注意 :需要反映列表的当前状态。

        参数
        from - 标记被 from的范围的开始(包括)
        to - 标记排列的范围的结束(排他)
        perm - 该范围内的排列。 即使是from != 0 ,数组也应该包含列表的索引。 因此,这种排列不包含范围(0, from)索引
      • nextAdd

        protected final void nextAdd​(int from,
                                     int to)
        对更改添加新的添加操作。 没有必要提供添加项目的列表,因为它们可以直接在指定索引下的列表中找到。

        注意 :需要在endChange()块内beginChange()

        注意 :需要反映列表的当前状态。

        参数
        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一个实例来避免这种情况。

        Specified by:
        addListener在接口 Observable
        参数
        listener - listener注册
        另请参见:
        Observable.removeListener(InvalidationListener)
      • removeListener

        public final void removeListener​(InvalidationListener listener)
        说明从界面Observable复制
        从监听器列表中删除给定的监听器,当Observable的值变为无效时通知Observable

        如果给定的侦听器以前没有被注册过(即它从未被添加过),那么这个方法调用是一个无操作的。 如果以前已经添加,那么它将被删除。 如果多次添加,那么只有第一次出现将被删除。

        Specified by:
        removeListener在接口 Observable
        参数
        listener - 要删除的侦听器
        另请参见:
        Observable.addListener(InvalidationListener)
      • removeListener

        public final void removeListener​(ListChangeListener<? super E> listener)
        说明从接口ObservableList复制
        尝试从此可观察列表中删除侦听器。 如果监听者没有附加到此列表中,则不会发生任何事情。
        Specified by:
        removeListener在接口 ObservableList<E>
        参数
        listener - 要删除的侦听器
      • fireChange

        protected final void fireChange​(ListChangeListener.Change<? extends E> change)
        通知所有听众的变化
        参数
        change - 表示所做更改的对象
      • hasListeners

        protected final boolean hasListeners​()
        如果为此列表注册了一些监听器,则返回true。
        结果
        如果有这个列表的侦听器,则为true
      • addAll

        public boolean addAll​(E... elements)
        说明从界面ObservableList复制
        用于var-arg添加元素的方便方法。
        Specified by:
        addAll在接口 ObservableList<E>
        参数
        elements - 要添加的元素
        结果
        true(由Collection.add(E)指定)
      • setAll

        public boolean setAll​(E... elements)
        说明从接口ObservableList复制
        清除ObservableList并添加所有传递给var-args的元素。
        Specified by:
        setAll在接口 ObservableList<E>
        参数
        elements - 要设置的元素
        结果
        true(由Collection.add(E)指定)
      • setAll

        public boolean setAll​(Collection<? extends E> col)
        描述从接口ObservableList复制
        清除ObservableList并添加集合中的所有元素。
        Specified by:
        setAll在接口 ObservableList<E>
        参数
        col - 将添加到此observableArrayList的元素的集合
        结果
        true(由Collection.add(E)指定)
      • removeAll

        public boolean removeAll​(E... elements)
        说明从接口ObservableList复制
        对于 removeAll方法的var-arg使用的 方便方法。
        Specified by:
        removeAll在接口 ObservableList<E>
        参数
        elements - 要删除的元素
        结果
        如果列表因此调用而更改,则为true
      • retainAll

        public boolean retainAll​(E... elements)
        描述从接口ObservableList复制
        对于 retainAll方法的var-arg使用的 方便方法。
        Specified by:
        retainAll在接口 ObservableList<E>
        参数
        elements - 要保留的元素
        结果
        如果列表因此调用而更改,则为true
      • remove

        public void remove​(int from,
                           int to)
        描述从接口ObservableList复制
        一种调用sublist(from, to).clear()简化方法。 由于这是一个常见的操作,ObservableList具有方便使用的方法。
        Specified by:
        remove在接口 ObservableList<E>
        参数
        from - 要删除的范围的开始(含)
        to - 删除的范围的结束(排他)