如何在java.swing.AbstractListModel中使用"fireContentsChanged"方法?



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

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

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

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

那么index0index1应该"括号内的变化。"

"括号内的变化"是什么意思?

在这种情况下,括号用作动词,意思是包围或包括;index0应该包含变化最小的索引,index1应该包含变化最大的索引。这个范围可能包括中间细胞,即使它们没有改变。令人高兴的是,像JTable一样,JList只呈现可见单元格,因此边际成本是有限的;这里更多。

相关内容

  • 没有找到相关文章

最新更新