到目前为止,我知道如何使用 JScrollPane 的 JViewPort 对象在某一点获取特定行。
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
JViewport viewport = scrollPane.getViewport();
Point p = viewport.getViewPosition();
int rowIndex = getLogsTable().rowAtPoint(p);
System.out.println("Minimum Y: " + viewport.getViewRect().getMinY());
System.out.println("Min row: " + getLogsTable().rowAtPoint(new Point(0, (int) viewport.getViewRect().getMinY())));
System.out.println("Maximum Y: " + viewport.getViewRect().getMaxY());
System.out.println("Max row: " + getLogsTable().rowAtPoint(new Point(0, (int) viewport.getViewRect().getMaxY())));
}
});
我很难弄清楚如何获取 JViewport.getMinimumY() 和 JViewport.getMaximumY() 之间的所有行。有没有办法收集这两个视口点之间的所有行项目,或者有没有办法只获取 JScrollPane 视图中的所有行?