java - 强制更新 JList

标签 java swing jlist

当我编辑列表中对象的数量并且 toString 更改时,如何使用新的 toString 更新列表?

例如,当我更改 JTree 中的节点时,我使用 nodeChanged(node) 更改列表项时该怎么办?

最佳答案

AbstractListModel#fireContentsChanged如果您从 AbstractListModel 扩展。

这与您上一个问题的JTree原理相同。 AbstractListModel 不知道对象的某些内部属性何时发生更改。因此,当您进行更改时,您必须调用指示对象已更改的特定方法。列表模型将触发 JList 接收到的正确事件,该事件将更新/重新绘制(无论您想如何调用它)。

我个人更喜欢创建独立的ListModel,例如如果您使用触发事件的对象在更改 ListModel 时可以监听这些更改并触发适当的事件本身,而不必在外部调用此方法。

编辑

刚刚注意到该特定方法受到保护,因此您需要按照我的建议创建模型,并且不能在外部调用该方法(这是一件好事)

关于java - 强制更新 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194042/

相关文章:

java - 游戏中的 Random 与 SecureRandom

Java "tail -f"包装器

java - Swing JSplitPane问题

java - 如何将一行 Swing Jtable 设置为 'selected'?

java - FileReader 在同一文件夹中找不到 XML 文件

java - 如何制作模态 JFrame 或另一个 JComponent?

java - 只允许一个 JInternalFrame 实例

java - 如何在JList中设置背景颜色和字体大小?

java - ArrayList<recipe> 到 JList

java - JList 与数组列表?