[英]How to register a change in a JList Model?
我在理解哪个接口需要监听listModel中的更改时遇到问题。 我以为是ListDataListener,但我无法理解其中的方法。 它有3种方法,这个方法似乎是我想要的方法,但我无法理解描述:
contentsChanged(ListDataEvent e)
Sent when the contents of the list has changed in a way that's too complex to characterize with the previous methods.
“过于复杂”是什么意思? 并通过“以前的方法表征”? 那么,整个事情意味着什么? 这是我想要的界面吗?
ListModel
将事件调度到其ListDataListener
侦听器。 列表模型在可能的情况下调用详细的intervalAdded
和intervalRemoved
方法更有效。 列表模型的监听器(在这种情况下是JList
)可以使用这些详细的更改来对可视组件进行最小的更改(即,对于intervalAdded
它可以只添加新行而不是重绘整个列表)。
但是,某些更改可能过于复杂,无法添加和删除。 在这种情况下,列表模型可以选择调用contentsChanged
。 当JList
看到contentsChanged
它很可能会从列表模型中重新获取整个列表。
是的,那是正确的倾听者。
该声明意味着此方法更为通用,将涵盖列表内容的每个可能的更改。 当这些特定事件发生时,应该使用其他的( intervalAdded
和intervalRemoved
)。
在我的练习中,你将始终使用最通用的一个(即使是表监听器)..我猜它应该用于优化(特别是大型列表)。
可在此处找到有关此侦听器的教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.