private static void setupUnitIncrement(ScrollBar bar) { bar.unitIncrementProperty().bind(new DoubleBinding() { { bind(bar.maxProperty(), bar.visibleAmountProperty()); } @Override protected double computeValue() { double max = bar.getMax(); double visible = bar.getVisibleAmount(); return max > visible ? 16 / (max - visible) * max : 0; } }); }
public void bind(ScrollBar bar) { bar.minProperty().bind(this.min); bar.maxProperty().bind(this.max); bar.visibleAmountProperty().bind(this.contentAreaHeight.divide(this.contentHeight.divide(this.max))); bar.valueProperty().bindBidirectional(this.offset); recomputeAll(); }
vScrollBar.minProperty().bind(scrollPane.vminProperty()); vScrollBar.maxProperty().bind(scrollPane.vmaxProperty()); vScrollBar.visibleAmountProperty().bind(scrollPane.heightProperty().divide(pane.heightProperty())); scrollPane.vvalueProperty().bindBidirectional(vScrollBar.valueProperty()); hScrollBar.minProperty().bind(scrollPane.hminProperty()); hScrollBar.maxProperty().bind(scrollPane.hmaxProperty()); hScrollBar.visibleAmountProperty().bind(scrollPane.widthProperty().divide(pane.heightProperty())); scrollPane.hvalueProperty().bindBidirectional(hScrollBar.valueProperty());
public void bindHorizontalScrollbar(ScrollBar bar) { bar.setMin(0); DoubleBinding max = this.contentBody.widthProperty().subtract(widthProperty()); DoubleBinding factor = this.contentBody.widthProperty().divide(max); bar.maxProperty().bind(this.contentBody.widthProperty().divide(factor)); bar.visibleAmountProperty().bind(widthProperty().divide(factor)); this.offsetX.bind(bar.valueProperty()); }
hbar.blockIncrementProperty().bind(hbar.visibleAmountProperty()); vbar.blockIncrementProperty().bind(vbar.visibleAmountProperty());