Удалить все выбранные элементы из JList? - PullRequest
1 голос
/ 06 июля 2019

Я пытаюсь удалить выбранные элементы из JList.Я знаю, как удалить тот, который

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

Однако;Есть ли способ удалить мои выбранные индексы?Я знаю о функции

list.getSelectedIndices();

, которая возвращает массив Int.Я подумал, что если я проведу через это, чтобы удалить индексы, это должно работать, однако я получаю ошибки от этого (Предполагая, что индекс # идет вниз.

1 Ответ

1 голос
/ 06 июля 2019

Удаление элемента «сдвинет» все элементы, которые идут после него, что, вероятно, является причиной ошибок, которые вы видели. Одним из способов решения этой проблемы является перебор этих индексов в обратном направлении , чтобы вы никогда не обрабатывали смещенную часть списка:

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