我想知道是否有任何"简单"的方法可以将垂直滚动条设置为在按下按钮时"滚动"特定量,或者在任何事件上。
例如,我有一个具有侧边栏的应用程序,侧边栏上的选项之一是"设置"。设置有子项,我想添加功能以单击其中一个子项,它将打开"设置"页面并自动向下滚动到该子项所在的页面上的特定点。
以编程方式垂直滚动ScrollPane
只需操作vvalue
属性即可。下面是该属性的文档:
窗格的当前垂直滚动位置。应用程序可以设置此值以编程方式滚动视图。每当用户滚动或平移视区时,滚动窗格都会更新此值。此值必须始终在
vmin
到vmax
的范围内。当vvalue
等于vmin
时,包含的节点被定位,使其布局边界minY
可见。当vvalue
等于vmax
时,包含的节点被定位,使其布局边界maxY
可见。当vvalue
介于vmin
和vmax
之间时,包含的节点按比例放置在 layoutBoundsminY
和 layoutBoundsmaxY
之间。
看看这个解决方案:
Bounds bounds = pane.getViewportBounds();
pane.setVvalue(box.getChildren().get(x).getLayoutY() *
(1/(box.getHeight()-bounds.getHeight())));
pane
是滚动窗格。box
是保存要滚动到的节点的窗格。x
将滚动到子节点。