问题描述
使用事件而不是表选择获取行索引:
final int selectedRowIndex = table.rowAtPoint(mouseEvent.getPoint());
// If the rows are sorted or filtered
final int modelRowIndex = table.convertRowIndexToModel(selectedRowIndex);
getSelectedRow()
不适用于多个选定的行(允许多个选择),因为它将始终返回“
选定行的索引”。
解决方法
我在上写了一个“双击”事件JTable
。我的JTable,即。myTaskTable填充有许多具有多列的行。我希望在双击的行之一时检索行索引JTable
。我不确定为什么总是返回索引-1导致异常。我在俯视什么吗?可能出什么问题了?
这就是我从JTable
-myTaskTable中检索所选行的索引的方式
int selRow = myTaskTable.getSelectedRow();
谢谢!
编辑
这是代码:
...
myTaskTable.addMouseListener(this);
...
public void mouseClicked(MouseEvent e)
{
if(e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
if(e.getClickCount() == 2)
{
e.consume();
int selRow = myTaskTable.getSelectedRow();
System.out.println("GridReport double clicked on row="+selRow);
}
}
}