我有两个滚动条(水平和垂直)的JTable。当我使用scrollRectToVisible时,它将返回Rectangle,此操作导致垂直和水平滚动条自动移动到指定的行/列。如何自动将垂直滚动条移动到所需位置,水平滚动条应保持不 Activity 状态?此方法应该向我显示选定的行,但我的JTable非常宽,我想避免在轨道的开头(左侧)自动移动(水平)->简单地说,我希望水平位置不变。

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);

08-29 00:55