gpt4 book ai didi

java - 从模型(AbstractListModel)中删除所有元素后更新 JList

转载 作者:行者123 更新时间:2023-11-29 05:45:30 30 4
gpt4 key购买 nike

我有一个 JList,其中每个元素都包含一些特殊数据。所以我已经为 JList 实现了 AbstractListModel。

当列表中有一个或多个元素时,一切都很好。

但是,在以下情况下不起作用:

  • Jlist 已经用一些元素实例化了。
  • 我需要从列表中删除所有元素。
  • 我在模型中没有可访问的 JList 对象(组件),因此无法调用 repaint()。

我无法调用 AbstractListModel 的 fire***() 方法,因为它会抛出 OutOfIndexException。

有什么建议吗?

最佳答案

你声明:

Because I am calling fireContentsChanged(this, 0,0)..which will look for 0th element in the list which does not exist. I know the cause but not the solution.

删除项目时不要调用 fireContentsChanged(...)。改为调用 fireIntervalRemoved(...)。顺便说一句,在这种情况下,您永远不必调用 repaint()。更改模型的状态,然后通过调用适当的 fireXXX(...) 方法通知模型的监听器是所有应该做的事情。

关于java - 从模型(AbstractListModel)中删除所有元素后更新 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983314/

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