如何在ScrollPane中访问ScrollBar? (JavaFX的)

时间:2015-03-06 17:30:04

标签: java javafx scrollbar scrollpane

我想访问ScrollPane中的ScrollBar来查找值并执行一些操作,例如点击增量和其他一些操作。我找不到任何访问水平和垂直滚动条的方法。我已尝试过这个链接的解决方案,但我没有成功:

How to access the Scrollbars of a ScrollPane

1 个答案:

答案 0 :(得分:0)

您的问题是链接中的解决方案仅在 之后才能将ScrollPane添加到舞台。

试试这个:

    ScrollPane scrollPane = new ScrollPane();

    primaryStage.setScene(new Scene(scrollPane, 300, 250));
    primaryStage.show();

    System.out.println("Lookup:");
    Set<Node> nodes = scrollPane.lookupAll(".scroll-bar");
    for( Node node: nodes) {
        System.out.println( node);
    }

    System.out.println("\nChild Iterator:");
    for( Node node: scrollPane.getChildrenUnmodifiable()) {
        System.out.println(node);
    }

应该给你这个:

Lookup:
ScrollBar@8e5ebc5[styleClass=scroll-bar]
ScrollBar@60e1e624[styleClass=scroll-bar]

Child Iterator:
ScrollPaneSkin$3@9a6ff7c[styleClass=viewport]
ScrollBar@8e5ebc5[styleClass=scroll-bar]
ScrollBar@60e1e624[styleClass=scroll-bar]
StackPane@697c10e[styleClass=corner]

换句话说:您可以使用lookupAll方法,我仍然不知道它是否会持续整个JavaFX的存在。或者您可以遍历子项并使用instanceof运算符来查找所需内容。