Один из моих списков только для одного выбора.как говорит Клеопатра.Данные о событиях здесь не помогают.
Это не то, что сказал Клеопатра.Данные события помогают.Вы просто не можете предположить, что первый индекс представляет выбранную строку, а последний индекс представляет предыдущую строку.
Как и предполагал Клеопатра, вам необходимо выполнить дополнительную проверку.Что-то вроде:
public void valueChanged(ListSelectionEvent e)
{
JList list = (JList)e.getSource();
int selected = list.getSelectedIndex();
int previous = selected == e.getFirstIndex() ? e.getLastIndex() : e.getFirstIndex();
System.out.println();
System.out.println("Selected:" + selected);
System.out.println("Previous:" + previous);
}