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
Post a Comment