首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListSelectionListener中的getSelectionIndex()方法

ListSelectionListener中的getSelectionIndex()方法
EN

Stack Overflow用户
提问于 2013-04-16 19:56:13
回答 1查看 164关注 0票数 0

例如,我有一个名为across_list的JList,其中包含一个项目列表,现在我向该JList添加了一个ListSelectionListener

考虑以下代码行:

代码语言:javascript
复制
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()“行打印selected_value的2个值,而我只在JList中的索引上单击了1次?

EN

回答 1

Stack Overflow用户

发布于 2013-04-19 23:22:39

由ui-delegate注册的listSelectionListener将选择更改标记为正在mousePressed上进行,并在mouseReleased中重置该标志,使其成为最终更改。如果希望仅对已完成的更改做出反应,则可以查询valueIsAdjusting属性,如果为true,则不执行任何操作:

代码语言:javascript
复制
class AcrossListHandler implements ListSelectionListener {

    @Override
    public void valueChanged(ListSelectionEvent e) {
        if (e.getValueIsAdjusting()) return;
        // do stuff
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16036391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档