有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用CTRL+单击选择JTable中的多行

我有一个JTableMULTIPLE_INTERVAL_SELECTION。我需要控件+单击以选择添加行。在我的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()查看是否按下了控制键,然后调用addSelectionInterval

我需要帮助确定和设置一个听众来做这件事


共 (0) 个答案