Вот метод получения видимой суммы от ScrollPane
ScrollBar
:
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));