如何在JavaFX中设置滚动窗格的单位增量?

时间:2013-07-16 21:18:26

标签: java javafx-2 javafx scrollpane

JavaFX中的ScrollBar类包含一个用于设置单位增量的属性,这就是我所追求的 - 但我无法找到如何获取此ScrollBar,或者以其他方式设置单位增量来自ScrollPane班!我认为我必须遗漏一些明显的东西 - 我如何实现这一目标?

2 个答案:

答案 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")方法进行操作。我不喜欢那个答案。

根据这张错误票,我认为你没有遗漏任何东西:

我鼓励你跳过这个,展示你的用例,投票,看看你是否能够在将来得到某种回应。