是否有类似“ changeSelection()”的函数来选择行,但在表的顶部而不是底部?

时间:2019-07-11 16:01:45

标签: java swing jtable jscrollbar

我有一个jTable,其中的树从上一个动作中自动选择对应的行。但是changeSelection滚动并选择行作为最后在底部可见。对我来说,这不舒服,因为它是一棵树,而且最好在表顶部首先被visible刻并选择行。

我尝试table.scrollRectToVisible(table.getCellRect(row,column, true));的相同结果,并尝试自定义设置scrollBar值,但是我不知道正确的值,因为面板可以更改大小。

我希望自动滚动到该行,并将该行标记在表格的顶部上。现在,自动滚动到行并标记在表格的底部上。

1 个答案:

答案 0 :(得分:1)

scrollRectToVisible(...)方法仅滚动JViewport中的JScrollPane,以确保Rectangle可见。因此,当您向下滚动时。它将显示在底部。如果向上滚动,它将显示在顶部。

控制滚动的一种更简单的方法是自己设置JViewport的位置:

JViewport viewport = (JViewport)scrollPane.getViewport();
Rectangle rectangle = table.getCellRect(row, column, true);
Point point = new Point(rectangle.x, rectangle.y);
viewport.setViewPosition( point );