java如何将JTable滚动到特定值?
我有一个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
多谢各位
# 1 楼答案
您需要对该表的引用并使用组合
JTable#getRowCount
、JTable#getValueAt
问题是,数据越多,速度就会越慢
# 2 楼答案
我认为use Filtering instead比在
XxxTableModel
或JTables view
中循环和搜索以比较所需的值更容易必须为包含
Date(DateTime
)值的列设置适当的ColumnClass for (java.util.Date)否则,必须循环并在
XxxTableModel
或JTables view
中搜索,并比较值