我有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
?
谢谢
答案 0 :(得分:3)
我认为use Filtering instead最简单,只需在XxxTableModel
或JTables view
中进行循环和搜索,以便比较所需的值
必须为包含Date(DateTime
)列的值设置正确的ColumnClass for (java.util.Date)
否则必须在XxxTableModel
或JTables view
中循环搜索并比较值
答案 1 :(得分:3)
您需要对表格的引用,并使用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;
使用更多数据时,问题会变慢。