gpt4 book ai didi

java - 在 JList 中删除和添加大量项目

转载 作者:行者123 更新时间:2023-11-30 02:13:46 26 4
gpt4 key购买 nike

enter image description here

目的是将选定的项目从左向右移动,反之亦然。
对于很少的项目工作得很好,但是一旦它处理很多项目,比如超过 20k,它就会变得很慢。

DefaultListModel<String> fromModel = (DefaultListModel<String>) fromJList.getModel();
DefaultListModel<String> toModel = (DefaultListModel<String>) toJList.getModel();

int selectedIndex;
while ((selectedIndex = fromJList.getSelectedIndex()) != -1)
{
String itemToRemove = fromModel.remove(selectedIndex);
fromList.remove(itemToRemove);
toList.add(itemToRemove);
toModel.addElement(itemToRemove);
}

最佳答案

DefaultListModel 的实现对于此类工作来说并不是最好的。而且逐一添加/删除也效率不高,因为它会在每次调用时触发刷新事件。

最好是通过扩展 AbstractListModel 创建您自己的 ListModel。

https://docs.oracle.com/javase/8/docs/api/javax/swing/AbstractListModel.html

这个想法是进行所有更新,添加/删除项目,然后调用 fireContentsChanged

关于java - 在 JList 中删除和添加大量项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com