使用 CTRL+CLICK 在 JTable 中 select 多行

Using CTRL+CLICK to select multiple rows in JTable

我有一个 JTableMULTIPLE_INTERVAL_SELECTION。我需要 CONTROL+CLICK 到 select 添加行。在我的 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);
            }
        }
    }
});

问题是行 selection 事件发生在鼠标侦听器输入之前。单击的行已 selected,但之前的 selections 已清除。

我的问题是:

如何捕获 selection 事件以绕过自动 selection?

我可以捕获该事件以阻止它清除之前的 select 离子,使用 getModifiers() 查看是否按下了 CONTROL 键,然后调用 addSelectionInterval?

我需要帮助来识别和设置侦听器来执行此操作。

我的一个鼠标侦听器正在清除选择,这使得 control+click 看起来不起作用。感谢您审阅我的问题。