ListSelectionListener中的java方法getSelectionIndex()
例如,我有一个名为Cross_list的JList,其中包含一个项目列表,现在我向该JList添加了一个ListSelectionListener
考虑到这些代码行:
class AcrossListHandler implements ListSelectionListener {
@Override
public void valueChanged(ListSelectionEvent e) {
JList lsm = (JList) e.getSource();
int selected_index = lsm.getMaxSelectionIndex();
if (selected_index >= 0){
System.out.println(selected_index);
}
}
}
}
我有一个问题:为什么行“System.out.println()”只需在JList中的索引上单击1次,就可以打印所选值的2个值
# 1 楼答案
ui委托注册的listSelectionListener在mousePressed上将选择更改标记为正在进行中,并在MouseRelease中重置该标记,使其成为最终标记。如果只想对最终确定的更改作出反应,可以查询valueIsAdjusting属性,如果为true,则不执行任何操作: