JavaFX |如何从 ScrollPane 获取 "getVisibleAmount()" 值

JavaFX | how to get "getVisibleAmount()" value from ScrollPane

我一直在尝试从 ScrollPane 中获取值 getVisibleAmount(),ScrollPane 有一个子 AnchorPane 和 ScrollBar。在这种情况下,我想从 ScrollPane 获取 ScrollBar 子项到 getVisibleAmount() 函数。其中此功能仅在 ScrollBar 组件上。

我想将 ScrollPane child(ScrollBar) 的 getVisibleAmount() 分别应用到不同的 ScrollBar。

抱歉我的英语不是很好,也许这张图片可以帮助我实现目标。

任何解决方案将不胜感激。谢谢。

这是从 ScrollPaneScrollBar 中获取可见数量的方法:

static double getScrollBarVisibleAmount(ScrollPane scrollPane, Orientation orientation) {
    for (Node node : scrollPane.lookupAll(".scroll-bar")) {
        if (node instanceof ScrollBar) {
            ScrollBar scrollBar = (ScrollBar) node;
            if (scrollBar.getOrientation() == orientation) {
                return scrollBar.getVisibleAmount();
            }
        }
    }
    return -1.0;
}

你可以这样使用它:

double amount = getScrollBarVisibleAmount(myScrollPane, Orientation.VERTICAL);

您需要确切知道何时调用此方法,因为 ScrollPane 在调用时可能未显示。如果您分配 ChangeListener<Number>:

,跟踪更改也会更容易
scrollBar.visibleAmountProperty().addListener((observable, oldValue, newValue) -> System.out.println("New visible amount: " + newValue));