跟进:在不滚动列表的情况下重建容器列表
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)
。
参考 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)
。