0

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

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

4

2 回答 2

5

AbstractListModel#fireContentsChanged如果你从AbstractListModel.

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

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

编辑

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

于 2012-04-17T15:23:43.883 回答
0

List.updateUI() 会这样做,尽管有人告诉我这有一些开销。

于 2012-04-17T15:22:20.943 回答