Java scrollRectToVisible-->;垂直线上的需求效应

Java scrollRectToVisible-->;垂直线上的需求效应,java,swing,jtable,awt,jscrollpane,Java,Swing,Jtable,Awt,Jscrollpane,我有两个滚动条(水平和垂直)的JTable。当我使用scrollRectToVisible时,它会返回矩形,此操作会导致垂直和水平滚动条自动移动到指定的行/列。如何将垂直滚动条自动移动到所需位置,而水平滚动条应保持不活动状态?这个方法应该显示我选择的行,但是我的JTable很宽,我希望避免在track->simple的开始(左侧)自动移动(水平),我希望水平位置不变 public void goToSelected() { int selectedRow = this.getSelec

我有两个滚动条(水平和垂直)的JTable。当我使用scrollRectToVisible时,它会返回矩形,此操作会导致垂直和水平滚动条自动移动到指定的行/列。如何将垂直滚动条自动移动到所需位置,而水平滚动条应保持不活动状态?这个方法应该显示我选择的行,但是我的JTable很宽,我希望避免在track->simple的开始(左侧)自动移动(水平),我希望水平位置不变

public void goToSelected() {

    int selectedRow = this.getSelectedRow();
    if (selectedRow >= 0)

    this.scrollRectToVisible(this.getCellRect(selectedRow, 0, true));
}

水平位置可能会更改,因为您正在指定列索引(
0
),并且指定的列可能不可见。您可以简单地组合当前可见区域的值和单元格的垂直范围,以获得所需的效果:

Rectangle target = getCellRect(selectedRow, 0, true), vis = getVisibleRect();
target.x = vis.x;
target.width = vis.width;
scrollRectToVisible(target);

然后需要两个矩形,然后从JViewport中设置为矩形,但再加上一个以获得良好的捕捉效果