Самый простой способ для этого - добавить ListSelectionListener для восстановления правильного индекса в JList
.
. Посмотрите на пример:
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
list.setSelectedIndex(myIndex);
}
});
list.setSelectedIndex(0); //0 plays no role, since listener will select myIndex
Выбранный индекс всегда останется моим индексом, несмотря ни на что.
Примечание: Если вы хотите изменить индекс позже, вы должны изменить значениеmyIndex
переменная , не забывая также и о приемнике прослушивания .Точнее:
myIndex = 15;
list.setSelectedIndex(0); //0 plays no role, since the selection listener uses myIndex
Другой способ (на мой взгляд, более сложный ) - читать и следовать Отключить свойство выбора ячейки JList.