跟进:在不滚动列表的情况下重建容器列表

Follow up on: Rebuild list of containers without scrolling the list

参考 Shai Almog 的这个问答: Rebuild list of containers without scrolling the list

我有一个带有一个容器 (TableLayout) 的表单,其中包含几行带有标签和按钮的行。单击按钮会更改行的顺序并重建整个表单(在 myForm.removeAll() 之后)。 myForm.revalidate() 后表格跳到顶部。

我正在尝试实现这个确切的行为,return 到 revalidating/changing 容器内容之后的同一点(滚动位置 Y)。

我子class编辑了 Container-class 以使 setScrollY(int) 可见。将其与任意值一起使用不会滚动到该位置,因此 setScrollY 方法似乎不会整体更改内容窗格的滚动位置。

myContainer.getScrollY()总是return是“0”。我只通过调用 getContentPane().getScrollY().

获得滚动位置

但显然不可能在内容窗格上调用 setScrollY() 方法 - 因为不可能子 class 内容窗格 - 在之后滚动回相同位置正在重新验证表单。

感谢任何建议!

使用禁用 form/content 窗格滚动的边框布局。

将您的容器(您暴露 setScroll 的地方)放在中央,并确保在那个 Container 上调用 setScrollableY(true)