java在JscrollPane上向特定位置动态添加滚动项
问题的简短版本是:我有一个JScrollPane,其中有大量项目被滚动。在某些时候,我想在JScrollPane中添加一些项目,让它们不出现在列表的末尾,而是出现在(例如)第17个项目之后
通常情况下,如果所讨论的代码在JScrollPane派生类中,我就这么说。添加();但我相信这已经到了列表的末尾
理由:案例1:我滚动的基础数据是一个有序的项目列表,但在列表的任何位置都允许添加。当我在列表中间添加内容时,我希望避免将整个列表再次加载到JScrollPane中
案例2:我正在模拟一个滚动列表,其中包含扩展的子类别。因此,如果用户选择了一个具有扩展子类别的项目,我的操作代码会识别这种情况,查看程序数据以找到子类别,然后将它们添加到所选类别下的JScrollPane中。不用担心,但也会有一些视觉指示,表明它是一个子类别,由我的操作代码提供
我能把这些都编出来。我希望学习的是如何在不将其添加到列表末尾的情况下向JScrollPane添加内容
# 1 楼答案
答案取决于您要将项目添加到的组件。如果您使用的是} 的东西将项目添加到特定位置
JList
,那么可以使用类似^{如果您使用的是基于} 来指定应该添加组件的位置,这假设该位置存在(即如果容器仅包含单个组件,则无法将组件添加到位置100)
JComponent
(比如JPanel
)的东西,那么可以使用^{以下示例生成一个随机数,确定为维护有序列表而应插入该数字的位置,并在该点插入一个组件。它还将尝试滚动
JScrollPane
以使项目可见