我有一个JTable,在其TableModel中,我保存了一个int;这是我希望我的视图“保持在视口中间”的行索引 我的意思是,例如,如果我有1000行,任何时候在视图中显示10个,我的索引是500,我希望我的vieport自动显示行495-504。 这些行必须选择不。 我希望我能够正确解释我的问题。
谢谢
答案 0 :(得分:3)
1)JTable
(通知可以由Filtering
引起)返回行数
2)每一行都可以返回Rectangle
3)将此Rectangle
放入包含在invokeLater()中的JScrollPane#scrollRectToVisible(Rectangle aRect),这是关于将JViewport移动到决策行here
答案 1 :(得分:3)
假设你的行高相同,
int rowPosition = index - 10 / 2;
int pixelPosition = rowPosition * table.getRowHeight(rowPosition);
scrollPane.getViewPort().setViewPosition(new Point(0, pixelPosition));
如果行高不相同,则必须将第1行的所有行高加到行索引 - 5.