我有一个JTable显示日志文件的内容,第一列是带有毫秒的时间戳(例如10:31:54.531)。
该列已经对数据进行了排序。
我想允许用户滚动到他感兴趣的时间戳。

这是我想做的Java片段:

String myTimestamp = "10:31:54.531";
Integer myRowIndex = getRowIndexFromStringTimestamp(myTimestamp);
myJTable.getSelectionModel().setSelectionInterval(myRowIndex, myRowIndex);
myJTable.scrollRectToVisible(new Rectangle(myJTable.getCellRect(myRowIndex, 0, true)));


但是如何实现getRowIndexFromStringTimestamp

谢谢

最佳答案

您需要对该表的引用,并结合使用JTable#getRowCountJTable#getValueAt

int matchIndex = -1;
for (int rowIndex = 0; rowIndex < myJTable.getRowCount(); index++) {
    Object value = myJTable.getValueAt(rowIndex, colIndex);
    if (value.equals(timestamp)) { // Or what ever comparison you need..
        matchIndex = rowIndex;
        break;
    }
}
return matchIndex;


问题是随着数据的增加,速度会变慢。

10-07 13:22