我有一个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#getRowCount
,JTable#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;
问题是随着数据的增加,速度会变慢。