给定 aJScrollPane
包含一千个使用 some 的组件LayoutManager
。每个组件可以处于加载或卸载状态。没有足够的资源供所有人加载。
我只想load()
在内存中编辑可见组件,并unload()
编辑不可见组件。当用户滚动时,监听器需要不断更新组件的状态:unload()
以前可见的和load()
新可见的。
- 在任何给定时刻,我如何知道哪些组件是可见的?
- 我可以在不迭代整个千人的情况下知道这一点吗?(好像一个有效率的
viewPort.getVisibleComponents()
)
我将准备好所有组件 Y 的排序列表,然后在运行时二进制搜索中ViewPort
的 Y 以达到可以引导我找到可见的索引的索引。这失败了,因为组件 Ys 在列表准备期间全部返回 0。这需要高效。