我正在尝试从JList中删除选定的元素。我知道如何删除一个
((DefaultListModel) jList.getModel()).remove(index);
但是;有没有办法删除我选择的索引?我知道这个功能
list.getSelectedIndices();
哪个返回一个Int数组。我想出是否要遍历以删除索引应该可以工作,但是我从中得到了错误(假设因为索引#下降了。
答案 0 :(得分:1)
删除一个元素将“移动”该元素之后的所有元素,这可能是您所看到的错误的原因。解决此问题的一种方法是向后遍历那些索引,因此您永远都不会处理列表的移位部分:
DefaultListModel model = (DefaultListModel) jList.getModel();
int[] indexes = jList.getSelectedIndexes();
for (int i = indexes.length; i >= 0; --i) {
model.remove(indexes[i]);
}