JTable Goto Row

时间:2011-01-07 19:15:04

标签: java swing jtable

我正在尝试实现goto功能。我有一个有几千行的JTable,我希望能够跳转到指定的行号。

else if (BUTTON_GOTO.equals(command))
{
    int gotoLine = Integer.valueOf(gotoField.getText());            
    logTable.setRowSelectionInterval(gotoLine, gotoLine);
}

上面的代码将突出显示我正在寻找的行,但不会跳转到它。有谁知道怎么做?

由于

修改 使用下面的解决方案存在一个错误,即应用程序跳过几行而不是所需的行。有关详细信息,请参阅以下主题:

Stack Overflow - Java JTable Goto Row Bug

1 个答案:

答案 0 :(得分:2)

尝试:

logTable.scrollRectToVisible(logTable.getCellRect(gotoLine, 0, true));

getCellRect()返回一个Rectangle,它绑定给定行和列的单元格,scrollRectToVisible()告诉表的父级(如果使用JScrollPane,则应该是JViewPort)滚动那里。