簡體   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