JList:上一个选定的项目

Mar*_*hke 3 java swing jlist selectionchanged

我有一个JList并注册一个选择处理程序(ListSelectionListener).现在我需要现在以前选择的项目/索引.

到目前为止,我自己保存了最后一个选定的项目.有没有更好的方法呢?换句话说:这些年来我是否有错过的方法/最佳实践?!

cam*_*ckr 10

我的一个列表是仅限单选.像kleopatra说的那样.事件数据在这里没有帮助.

这不是Kleopatra所说的.事件数据确实有帮助.您不能假设第一个索引表示所选行,最后一个索引表示上一行.

正如Kleopatra建议您需要进一步检查.就像是:

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);
}
Run Code Online (Sandbox Code Playgroud)