【发布时间】:2012-04-20 07:32:22
【问题描述】:
我正在制作一个基于摇摆的应用程序,其中我有一个 JList,它会定期使用相同数据的不同顺序进行更新,很少使用新项目进行更新,也很少使用较少的项目进行更新。我正在尝试找出使这看起来不错的最佳方法。现在,我只是打电话给
JList.setListData(String [] data);
这看起来不太好,它会清除选定的项目。
我想要一种更新它的方法,如果它从列表中删除,则只清除选定的项目,否则保持相同的项目被选中,即使它们的索引发生变化。我正在研究跟踪选择了哪些索引,然后在更改数据后设置选定的项目,但这听起来很可怕。我还查看了 ListModels 并跟踪我自己的,但似乎选择的项目保存在 JList 本身中,因此也不能完美地工作。
非常感谢任何建议。
【问题讨论】:
-
使用 JXList(Swingx 的一部分),它支持 ui 级别的排序/过滤。请注意,在批量修改通知期间所有模型装饰解决方案都无效(通常我们可以逃脱,因为更常见的 chasnge 粒度是单项:-)