很有趣,我无法找到如何删除JList中的多个选定项目
请帮助
UPD:
好的,问题出在NetBeans中,因为它创建了JList并设置了模型AbstractListModel
,它不知道如何使用remove方法。
答案 0 :(得分:15)
DefaultListModel dlm = (DefaultListModel) subjectList.getModel();
if(this.subjectList.getSelectedIndices().length > 0) {
int[] selectedIndices = subjectList.getSelectedIndices();
for (int i = selectedIndices.length-1; i >=0; i--) {
dlm.removeElementAt(selectedIndices[i]);
}
}
答案 1 :(得分:2)
我也遇到过这个问题。 所有发布的解决方案对我都不起作用,因为如果我调用DefaultListModel #remove(int)它将修改基础列表,因此我之前使用JList#getSelectedIndices()收集的索引不再有效。
我找到了这个对我有用的解决方案。
for (MyObject o : jList1.getSelectedValuesList())
{
((DefaultListModel<MyObject>)jList1.getModel()).removeElement(o);
}
通过处理选定的对象,我不必关心索引及其有效性。
答案 2 :(得分:1)
我的解决方案:
DefaultListModel dlm = (DefaultListModel) lst.getModel();
int count = lst.getSelectedIndices().length;
for (int i = 0; i < count; i++)
{
dlm.removeElementAt(lst.getSelectedIndex());
}
答案 3 :(得分:0)
public int[] getSelectedIndices()
答案 4 :(得分:-1)
其中foo
是JList:
int[] selected = foo.getSelectedIndices();
for(int i : selected){
foo.remove(i);
}