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