2

我有带有 JTreeTable 的 JScrollPane。通常我的 JTable 包含很多项目,应用程序必须将焦点设置到树表中的特定行并滚动到它。我正在使用以下推荐的代码来设置焦点:

table.scrollRectToVisible(table.getCellRect(rowIndex, vColIndex, true));

出于某种原因,仅当新选择的行低于当前可见行时才有效。但是当程序要求选择一个在当前可见行之上的不可见行时,它根本不会滚动到该位置。我已经用谷歌搜索了很多关于这个问题的信息,但还没有找到任何解决方案。有人知道如何解决这个问题吗?先感谢您。

4

2 回答 2

3

为了处理向上滚动的情况,以下解决方法对我有用:

table.scrollRectToVisible(table.getCellRect(0, 0, true));
table.scrollRectToVisible(table.getCellRect(rowIndex, vColIndex, true));
于 2014-10-03T21:52:54.890 回答
3

scrollRectToVisible() 方法仅确保矩形在视口中可见。我相信即使起点可见,您也可以使 Rectangle 与视口大小相同以强制滚动。

一种更简单的方法是使用:

scrollPane.getViewport().setViewPosition(...);
于 2011-11-12T16:55:34.397 回答