我有一个JList,其中每个元素都包含一些特殊数据。所以我为JList实现了AbstractListModel。
当我在列表中有一个或多个元素时,一切都很有效。
但是,在下面的场景中不起作用:
我无法调用AbstractListModel的fire ***()方法,因为它抛出OutOfIndexException。
有什么建议吗?
答案 0 :(得分:3)
你说:
因为我正在调用fireContentsChanged(this,0,0)..这将查找列表中不存在的第0个元素。我知道原因但不是解决方案。
删除项目时请勿致电fireContentsChanged(...)
。请致电fireIntervalRemoved(...)
。另外,在这种情况下,你永远不必打电话给repaint()
。更改模型的状态,然后通过调用正确的fireXXX(...)
方法通知模型的侦听器是应该做的。