我正在尝试实现goto功能。我有一个有几千行的JTable,我希望能够跳转到指定的行号。
else if (BUTTON_GOTO.equals(command))
{
int gotoLine = Integer.valueOf(gotoField.getText());
logTable.setRowSelectionInterval(gotoLine, gotoLine);
}
上面的代码将突出显示我正在寻找的行,但不会跳转到它。有谁知道怎么做?
由于
修改 使用下面的解决方案存在一个错误,即应用程序跳过几行而不是所需的行。有关详细信息,请参阅以下主题:
答案 0 :(得分:2)
尝试:
logTable.scrollRectToVisible(logTable.getCellRect(gotoLine, 0, true));
getCellRect()返回一个Rectangle
,它绑定给定行和列的单元格,scrollRectToVisible()告诉表的父级(如果使用JScrollPane,则应该是JViewPort)滚动那里。