我有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
?
我需要帮助识别并设置一个监听器才能执行此操作。
答案 0 :(得分:-1)
我的一个鼠标监听器正在清除选项,这使得控件+单击无法正常工作。感谢您审核我的问题。