繁体   English   中英

如何在JList模型中注册更改?

[英]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侦听器。 列表模型在可能的情况下调用详细的intervalAddedintervalRemoved方法更有效。 列表模型的监听器(在这种情况下是JList )可以使用这些详细的更改来对可视组件进行最小的更改(即,对于intervalAdded它可以只添加新行而不是重绘整个列表)。

但是,某些更改可能过于复杂,无法添加和删除。 在这种情况下,列表模型可以选择调用contentsChanged JList看到contentsChanged它很可能会从列表模型中重新获取整个列表。

是的,那是正确的倾听者。

该声明意味着此方法更为通用,将涵盖列表内容的每个可能的更改。 当这些特定事件发生时,应该使用其他的( intervalAddedintervalRemoved )。

在我的练习中,你将始终使用最通用的一个(即使是表监听器)..我猜它应该用于优化(特别是大型列表)。

可在此处找到有关此侦听器的教程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM