gpt4 book ai didi

java - 我究竟如何使用 java.swing.AbstractListModel 中的 "fireContentsChanged"方法?

转载 作者:行者123 更新时间:2023-11-30 07:59:30 26 4
gpt4 key购买 nike

我如何在 java.swing.AbstractListModel 中使用 fireContentsChanged() 方法? ?当 ListModel 的某些元素的“内容”发生变化时,将调用此方法。

  1. 这是否仅意味着索引的对象发生了某种变化?
  2. 或者它是否还包括索引的对象已被其他对象替换的情况?
  3. 你能用它来添加/删除索引吗?例如,假设我从列表中的任意位置删除了 10 个随机元素。我给什么 index0index1?如果我在随机位置插入 10 个元素会怎样?

最佳答案

AbstractListModelListModel 的抽象实现,它提供了 ListDataListener 的具体实现方法,但它内部不包含特定的数据结构。收到相应的ListDataEvent允许监听 JList 更新自身以响应 ListModel 中的更改。 DefaultListModelAbstractListModel 的一个典型的具体子类,它在内部操作一个 Vectorsource说明了典型的用法。特别是,fireContentsChanged() 是“当列表的内容发生变化的方式过于复杂而无法用以前的方法描述时发送”,fireIntervalAdded()fireIntervalRemoved()。因为 Vectorlegacy在原始 DefaultTableModel 中,您需要使用更灵活的替代方案; index0index1 引用您选择的数据结构的元素。

What if I insert 10 elements in random places?

那么 index0index1 应该是 "bracket the change."

What does "bracket the change" mean?

在此上下文中,bracket 用作动词,意思是包含或包含; index0 应包含最低的更改索引,index1 应包含最高的更改索引。该范围可能包括中间单元格,即使它们没有更改。令人高兴的是,与 JTable 一样,JList 仅呈现可见 单元格,因此边际成本是有限的;更多here .

关于java - 我究竟如何使用 java.swing.AbstractListModel 中的 "fireContentsChanged"方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39284799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com