2

我究竟如何使用该fireContentsChanged()方法java.swing.AbstractListModelListModel当某些's 元素的“内容”发生更改时,将调用此方法。

  1. 这是否仅仅意味着索引的对象发生了某种变化?
  2. 或者它是否还包括索引的对象被替换为不同的对象?
  3. 您可以将其用于添加/删除的索引吗?例如,假设我从列表中的任意位置删除 10 个随机元素。index0我给什么index1?如果我在随机位置插入 10 个元素怎么办?
4

1 回答 1

3

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

如果我在随机位置插入 10 个元素怎么办?

然后index0并且index1应该“支持更改”。

“括号更改”是什么意思?

在这种情况下,括号用作包含或包含的动词含义;index0应该包括最低变化的索引,并且index1应该包括最高变化的索引。该范围可能包括中间单元格,即使它们没有更改。令人高兴的是,likeJTableJList渲染可见单元格,因此边际成本是有界的;更多在这里

于 2016-09-02T09:27:13.817 回答