JavaFX中的ScrollBar类包含一个用于设置单位增量的属性,这就是我所追求的 - 但我无法找到如何获取此ScrollBar,或者以其他方式设置单位增量来自ScrollPane班!我认为我必须遗漏一些明显的东西 - 我如何实现这一目标?
答案 0 :(得分:6)
您可以将ScrollEventListener设置为ScrollPane,从而覆盖原始行为。这样,例如,我实现了一个水平滚动而不是垂直滚动的ScrollPane。这就是我的代码的相关部分:
public class Overview extends ScrollPane {
...
private void setupHorizontalScrolling() {
this.setOnScroll(new EventHandler<ScrollEvent>() {
@Override
public void handle(ScrollEvent scrollEvent) {
double deltaY = scrollEvent.getDeltaY()*2; // *2 to make the scrolling a bit faster
double width = Overview.this.getContent().getBoundsInLocal().getWidth();
double hvalue = Overview.this.getHvalue();
Overview.this.setHvalue(hvalue + -deltaY/width); // deltaY/width to make the scrolling equally fast regardless of the actual width of the component
}
});
}
...
}
为了满足您的要求,您只需将调用get / setHvalue的行更改为get / setVvalue,然后就可以根据需要调整滚动。
答案 1 :(得分:4)
从技术上讲,在初始化外观后(如果滚动条可见),您应该能够使用.lookup("scrollbar")
方法进行操作。我不喜欢那个答案。
根据这张错误票,我认为你没有遗漏任何东西:
我鼓励你跳过这个,展示你的用例,投票,看看你是否能够在将来得到某种回应。