繁体   English   中英

ListSelectionModel和侦听器

[英]ListSelectionModel and listener

我有一个带有ListSelectionModel和ListSelectionListener的JTable。

选择模型是在lsm.getSelectionModel()构造函数中设置的: lsm.getSelectionModel()

并通过公共方法设置ListSelectionListener:

    public void setListSelectionListener(ListSelectionListener l){
        lsm.addListSelectionListener(l);
    }

从Controller类调用:

    view.setTableSelectionListener(new ListSelectionListener(){
        @Override
        public void valueChanged(ListSelectionEvent e){
            if (!e.getValueIsAdjusting()) {
                int viewRow = e.getFirstIndex();
                System.out.println(viewRow + " is selected");                  
            }
        }
    });

因为侦听器是在另一个类中创建的,所以我不能使用JTable的getSelectedRow(); 方法,但使用ListSelectionEvent对象的getFirstIndex(); 显然没有得到当前选择。

所以我现在使用int viewRow = ((ListSelectionModel)e.getSource()).getLeadSelectionIndex());

这似乎是获取当前选择的正确方法吗? 它似乎正在工作,但是我不确定这是否是不好的方法。 谢谢

仅getMinSelectionIndex()和getMaxSelectionIndex()有效,它们分别返回所选索引的最小值和最大值。 即使没有选定的行,引导/锚定的选定索引也可能> = 0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM