使用CTRL + CLICK在JTable中选择多行

时间:2017-05-05 16:41:56

标签: java swing jtable mouselistener listselectionlistener

我有JTable MULTIPLE_INTERVAL_SELECTION。我需要CONTROL + CLICK来选择添加行。在我的LAF中,这不会自动发生。我编写了以下使用鼠标侦听器的代码:

addMouseListener(new MouseAdapter()
{
    @Override
    public void mousePressed(MouseEvent event)
    {
        ListSelectionModel listSelectionModel = getSelectionModel();

        if (listSelectionModel.getSelectionMode() ==
                ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
        {
            if (event.isControlDown())
            {
                int rowView  = rowAtPoint(event.getPoint());

                if (isRowSelected(rowView))
                {
                    System.out.println("rowView already selected");

                }

                listSelectionModel.addSelectionInterval(rowView, rowView);
            }
        }
    }
});

问题是行选择事件发生在输入鼠标侦听器之前。单击的行已被选中,但之前的选择已被清除。

我的问题是:

如何捕捉选择事件以绕过自动选择?

我是否可以捕获该事件以阻止它清除之前的选择,使用getModifiers()查看是否按下了CONTROL键,然后拨打addSelectionInterval

我需要帮助识别并设置一个监听器才能执行此操作。

1 个答案:

答案 0 :(得分:-1)

我的一个鼠标监听器正在清除选项,这使得控件+单击无法正常工作。感谢您审核我的问题。