我为排序的JList找到了sample,但我的应用程序是由嵌入式H2数据库驱动的,所以我想知道是否有更好的方法来实现这一点。特别是考虑到有问题的表可能会变得非常大,并且在JList列表模型中复制所有数据似乎有点无法让数据库来管理它。
这样做有好办法吗?或者我被迫拼凑一些笨拙的黑客以允许JList“滚动”动态查询的数据块或什么?
答案 0 :(得分:2)
您的JList
ListModel
负责将支持数据公开为有序列表。 ListModel
的方法将由JList
从UI(AWT事件)线程调用,因此其性能需要非常好。这就是为什么大多数实现都具有{ {1}}在内存中备份数据。我想你可以用数据库作为支持数据实现ListModel
。您很可能会延长ListModel
以获取侦听器注册,并实施AbstractListModel
和getElementAt(int)
。然后getSize()
负责获取特定索引的对象。请注意,getElementAt
会针对不同的索引多次调用JList
,因此您可能会发现自己正在缓存结果。根据您缓存的数据量,您可能只是从数据库中检索整个数据集。