java - JavaFX why does ScrollPane require two group wrappings to re-compute its scollbars? -


in example, image of map set on scrollpane in fxml file.

http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/36a59c629605

the image resizable other method changes scale of group - zoomgroup - containing image.

+    private void zoom(double scalevalue) { +//    system.out.println("airportapp.controller.zoom, scalevalue: " + scalevalue); +        double scrollh = map_scrollpane.gethvalue(); +        double scrollv = map_scrollpane.getvvalue(); +        zoomgroup.setscalex(scalevalue); +        zoomgroup.setscaley(scalevalue); +        map_scrollpane.sethvalue(scrollh); +        map_scrollpane.setvvalue(scrollv); +    } 

but in order make sure scrollpane re-computes scrollbars (so scrollable area changes include entire image @ scale) group wraps image, zoomgroup, wrapped in group, contentgroup, set scrollpane's content.

+        // wrap scroll content in group scrollpane re-computes scroll bars +        group contentgroup = new group(); +        zoomgroup = new group(); +        contentgroup.getchildren().add(zoomgroup); +        zoomgroup.getchildren().add(map_scrollpane.getcontent()); +        map_scrollpane.setcontent(contentgroup); 

can explain why necessary?

this video accompanies files: https://www.youtube.com/watch?v=ij0hwralcmo


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -