繁体   English   中英

删除和添加JList中的项目吨

[英]Removing And Adding Tons of Items In JList

在此处输入图片说明

目的是将选定的项目从左向右移动,反之亦然。
很少有项目可以正常工作,但是一旦处理了超过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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM