从JList中删除所有选定的元素?

时间:2019-07-06 16:03:58

标签: java jlist

我正在尝试从JList中删除选定的元素。我知道如何删除一个

((DefaultListModel) jList.getModel()).remove(index);

但是;有没有办法删除我选择的索引?我知道这个功能

list.getSelectedIndices();

哪个返回一个Int数组。我想出是否要遍历以删除索引应该可以工作,但是我从中得到了错误(假设因为索引#下降了。

1 个答案:

答案 0 :(得分:1)

删除一个元素将“移动”该元素之后的所有元素,这可能是您所看到的错误的原因。解决此问题的一种方法是向后遍历那些索引,因此您永远都不会处理列表的移位部分:

DefaultListModel model = (DefaultListModel) jList.getModel();
int[] indexes = jList.getSelectedIndexes();
for (int i = indexes.length; i >= 0; --i) {
    model.remove(indexes[i]);
}