It's funny, I can't find out how to delete multiple selected items in a JList
Help please
UPD:
OK, the problem was in NetBeans, because it creates JList and sets model AbstractListModel
which somehow not working with remove method.
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]);
}
}
I came across this problem too. All posted solutions did not work for me because if I call DefaultListModel#remove(int) it will modify the underlying list and thus the indices which I gathered before with JList#getSelectedIndices() are no longer valid.
I came to this solution, which worked for me.
for (MyObject o : jList1.getSelectedValuesList())
{
((DefaultListModel<MyObject>)jList1.getModel()).removeElement(o);
}
By handling the selected Objects I don't have to care about indices and their validity.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With