如何在JList模型中注册变更



我在理解我需要在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)应该在这些特定事件发生时使用。

在我的实践中,您将始终使用最通用的一个(即使是表侦听器)..我猜它应该是用来优化的(尤其是大列表)。

关于这个监听器的教程可以在这里找到

相关内容

  • 没有找到相关文章

最新更新