下面列出了javafx.scene.input.ScrollEvent#consume ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* @param event Zooms in and out when the mouse is scrolled.
*/
public void onScrollHandler(ScrollEvent event) {
double delta = 1.2;
double scale = (plot.getScaleX());
if (event.getDeltaY() < 0) {
scale /= delta;
} else {
scale *= delta;
}
scale = clamp(scale, MIN_SCALE, MAX_SCALE);
plot.setScaleX(scale);
plot.setScaleY(scale);
event.consume();
}
/** Zoom in/out triggered by mouse wheel
* @param event Scroll event
*/
protected void wheelZoom(final ScrollEvent event)
{
// Invoked by mouse scroll wheel.
// Only allow zoom (with control), not pan.
if (! event.isControlDown())
return;
if (event.getDeltaY() > 0)
zoomInOut(event.getX(), event.getY(), 1.0/ZOOM_FACTOR);
else if (event.getDeltaY() < 0)
zoomInOut(event.getX(), event.getY(), ZOOM_FACTOR);
else
return;
event.consume();
}
/**
* @param event
* Zooms in and out when the mouse is scrolled.
*/
public void onScrollHandler(ScrollEvent event) {
double delta = 1.2;
double scale = (plot.getScaleX());
if (event.getDeltaY() < 0) {
scale /= delta;
} else {
scale *= delta;
}
scale = clamp(scale, MIN_SCALE, MAX_SCALE);
plot.setScaleX(scale);
plot.setScaleY(scale);
event.consume();
}
private void processScrollEvent(ScrollEvent ev) {
if (page == null) {
return;
}
double dx = - ev.getDeltaX() * webView.getFontScale() * webView.getScaleX();
double dy = - ev.getDeltaY() * webView.getFontScale() * webView.getScaleY();
WCMouseWheelEvent wheelEvent =
new WCMouseWheelEvent((int)ev.getX(), (int)ev.getY(),
(int)ev.getScreenX(), (int)ev.getScreenY(),
System.currentTimeMillis(),
ev.isShiftDown(), ev.isControlDown(), ev.isAltDown(),
ev.isMetaDown(), (float)dx, (float)dy);
page.dispatchMouseWheelEvent(wheelEvent);
ev.consume();
}
@Override
public void handle(ScrollEvent event) {
double scale = canvas.getScale(); // currently we only use Y, same value is used for X
final double oldScale = scale;
if(event.getDeltaY() < 0) {
scale /= getZoomSpeed();
} else if (event.getDeltaY() > 0) {
scale *= getZoomSpeed();
}
scale = clamp(scale, minScaleProperty.get(), maxScaleProperty.get());
final double f = (scale / oldScale) - 1;
// maxX = right overhang, maxY = lower overhang
final double maxX = canvas.getBoundsInParent().getMaxX() - canvas.localToParent(canvas.getPrefWidth(), canvas.getPrefHeight()).getX();
final double maxY = canvas.getBoundsInParent().getMaxY() - canvas.localToParent(canvas.getPrefWidth(), canvas.getPrefHeight()).getY();
// minX = left overhang, minY = upper overhang
final double minX = canvas.localToParent(0, 0).getX() - canvas.getBoundsInParent().getMinX();
final double minY = canvas.localToParent(0, 0).getY() - canvas.getBoundsInParent().getMinY();
// adding the overhangs together, as we only consider the width of canvas itself
final double subX = maxX + minX;
final double subY = maxY + minY;
// subtracting the overall overhang from the width and only the left and upper overhang from the upper left point
final double dx = (event.getSceneX() - ((canvas.getBoundsInParent().getWidth() - subX) / 2 + (canvas.getBoundsInParent().getMinX() + minX)));
final double dy = (event.getSceneY() - ((canvas.getBoundsInParent().getHeight() - subY) / 2 + (canvas.getBoundsInParent().getMinY() + minY)));
canvas.setScale(scale);
// note: pivot value must be untransformed, i. e. without scaling
canvas.setPivot(f * dx, f * dy);
event.consume();
}
public void handle(ScrollEvent event) {
if(!this.control.isIgnoreEvents()) {
if( event.isControlDown() ) {
this.onZoom(new UIZoomEvent(this.control, (event.getDeltaY() > 0 ? 1 : -1)));
event.consume();
}
}
}
public void handle(ScrollEvent event) {
if(!this.control.isIgnoreEvents()) {
Integer button = JFXMouseButton.getMouseButton(MouseButton.MIDDLE);
Integer value = (int) Math.round(event.getDeltaX() != 0 ? event.getDeltaX() : event.getDeltaY());
this.onMouseWheel(new UIMouseWheelEvent(this.control, new UIPosition((float)event.getX(), (float)event.getY()), button, value));
event.consume();
}
}
public void handle(ScrollEvent event) {
this.control.onScroll((int) -Math.round(event.getDeltaX() != 0 ? event.getDeltaX() : event.getDeltaY()));
event.consume();
}
/**
* Push scroll events received by cell nodes directly to
* the 'owner' Node. (Generally likely to be a VirtualFlow
* but not required.)
*
* Normal bubbling of scroll events gets interrupted during
* a scroll gesture when the Cell's Node receiving the event
* has moved out of the viewport and is thus removed from
* the Navigator's children list. This breaks expected trackpad
* scrolling behaviour, at least on macOS.
*
* So here we take over event-bubbling duties for ScrollEvent
* and push them ourselves directly to the given owner.
*/
private void pushScrollEvent(ScrollEvent se) {
owner.fireEvent(se);
se.consume();
}