xAxis.getLowerBound(), xAxis.getUpperBound() ); double yZoomBalance = getBalance( dataCoords.getY(), yAxis.getLowerBound(), yAxis.getUpperBound() ); double xZoomDelta = ( xAxis.getUpperBound() - xAxis.getLowerBound() ) * zoomAmount; xAxis.setAutoRanging( false ); xAxis.setLowerBound( xAxis.getLowerBound() - xZoomDelta * xZoomBalance ); xAxis.setUpperBound( xAxis.getUpperBound() + xZoomDelta * ( 1 - xZoomBalance ) ); double yZoomDelta = ( yAxis.getUpperBound() - yAxis.getLowerBound() ) * zoomAmount; yAxis.setAutoRanging( false ); yAxis.setLowerBound( yAxis.getLowerBound() - yZoomDelta * yZoomBalance ); yAxis.setUpperBound( yAxis.getUpperBound() + yZoomDelta * ( 1 - yZoomBalance ) );
private void drag( MouseEvent event ) { if ( !dragging ) return; if ( panMode == AxisConstraint.Both || panMode == AxisConstraint.Horizontal ) { double dX = ( event.getX() - lastX ) / -xAxis.getScale(); lastX = event.getX(); xAxis.setAutoRanging( false ); xAxis.setLowerBound( xAxis.getLowerBound() + dX ); xAxis.setUpperBound( xAxis.getUpperBound() + dX ); } if ( panMode == AxisConstraint.Both || panMode == AxisConstraint.Vertical ) { double dY = ( event.getY() - lastY ) / -yAxis.getScale(); lastY = event.getY(); yAxis.setAutoRanging( false ); yAxis.setLowerBound( yAxis.getLowerBound() + dY ); yAxis.setUpperBound( yAxis.getUpperBound() + dY ); } }
new KeyFrame( Duration.ZERO, new KeyValue( xAxis.lowerBoundProperty(), xAxis.getLowerBound() ), new KeyValue( xAxis.upperBoundProperty(), xAxis.getUpperBound() ), new KeyValue( yAxis.lowerBoundProperty(), yAxis.getLowerBound() ), new KeyValue( yAxis.upperBoundProperty(), yAxis.getUpperBound() ) ), new KeyFrame( Duration.millis( zoomDurationMillis.get() ),