我有一个带有JTreeTable的JScrollPane。通常我的JTable包含很多项目,app必须将焦点设置为treetable中的特定行并滚动到它。 我使用以下推荐代码设置焦点:
table.scrollRectToVisible(table.getCellRect(rowIndex, vColIndex, true));
由于某些原因,仅当新选择的行低于当前可见行时才有效。但是当程序要求选择一个在当前可见行上方的不可见行时,它根本不会滚动到该位置。 我已经搜索了很多关于这个问题的信息,但尚未找到任何解决方案。有人知道如何解决这个问题吗? 提前谢谢。
答案 0 :(得分:3)
scrollRectToVisible()方法仅确保矩形在视口中可见。我相信你可以使Rectangle与视口大小相同,即使起始点可见,也可以强制滚动。
更简单的方法是使用:
scrollPane.getViewport().setViewPosition(...);
答案 1 :(得分:2)
要处理向上滚动条件,以下解决方法对我有用:
table.scrollRectToVisible(table.getCellRect(0, 0, true));
table.scrollRectToVisible(table.getCellRect(rowIndex, vColIndex, true));