我想访问ScrollPane中的ScrollBar来查找值并执行一些操作,例如点击增量和其他一些操作。我找不到任何访问水平和垂直滚动条的方法。我已尝试过这个链接的解决方案,但我没有成功:
答案 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运算符来查找所需内容。